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