@@ -1064,15 +1064,16 @@ async function completeAsyncIteratorValue(
1064
1064
try {
1065
1065
// eslint-disable-next-line no-await-in-loop
1066
1066
iteration = await iterator . next ( ) ;
1067
- if ( iteration . done ) {
1068
- break ;
1069
- }
1070
1067
} catch ( rawError ) {
1071
1068
const error = locatedError ( rawError , fieldNodes , pathToArray ( itemPath ) ) ;
1072
1069
completedResults . push ( handleFieldError ( error , itemType , errors ) ) ;
1073
1070
break ;
1074
1071
}
1075
1072
1073
+ if ( iteration . done ) {
1074
+ break ;
1075
+ }
1076
+
1076
1077
if (
1077
1078
completeListItemValue (
1078
1079
iteration . value ,
@@ -1952,20 +1953,23 @@ async function executeStreamIteratorItem(
1952
1953
asyncPayloadRecord : StreamRecord ,
1953
1954
itemPath : Path ,
1954
1955
) : Promise < IteratorResult < unknown > > {
1955
- let item ;
1956
+ let iteration ;
1956
1957
try {
1957
- const { value, done } = await iterator . next ( ) ;
1958
- if ( done ) {
1959
- asyncPayloadRecord . setIsCompletedIterator ( ) ;
1960
- return { done, value : undefined } ;
1961
- }
1962
- item = value ;
1958
+ iteration = await iterator . next ( ) ;
1963
1959
} catch ( rawError ) {
1964
1960
const error = locatedError ( rawError , fieldNodes , pathToArray ( itemPath ) ) ;
1965
1961
const value = handleFieldError ( error , itemType , asyncPayloadRecord . errors ) ;
1966
1962
// don't continue if iterator throws
1967
1963
return { done : true , value } ;
1968
1964
}
1965
+
1966
+ const { done, value } = iteration ;
1967
+
1968
+ if ( done ) {
1969
+ asyncPayloadRecord . setIsCompletedIterator ( ) ;
1970
+ return { done, value : undefined } ;
1971
+ }
1972
+
1969
1973
return {
1970
1974
done : false ,
1971
1975
value : completeValueCatchingErrors (
@@ -1974,7 +1978,7 @@ async function executeStreamIteratorItem(
1974
1978
fieldNodes ,
1975
1979
info ,
1976
1980
itemPath ,
1977
- item ,
1981
+ value ,
1978
1982
asyncPayloadRecord ,
1979
1983
) ,
1980
1984
} ;
0 commit comments