@@ -1112,10 +1112,9 @@ function defaultResolveTypeFn(
1112
1112
context : mixed ,
1113
1113
info : GraphQLResolveInfo ,
1114
1114
abstractType : GraphQLAbstractType
1115
- ) : ?GraphQLObjectType | ? Promise < ?GraphQLObjectType > {
1115
+ ) : ?GraphQLObjectType | Promise < ?GraphQLObjectType > {
1116
1116
const possibleTypes = info . schema . getPossibleTypes ( abstractType ) ;
1117
1117
const promisedIsTypeOfResults = [ ] ;
1118
- const promisedIsTypeOfResultTypes = [ ] ;
1119
1118
1120
1119
for ( let i = 0 ; i < possibleTypes . length ; i ++ ) {
1121
1120
const type = possibleTypes [ i ] ;
@@ -1124,20 +1123,21 @@ function defaultResolveTypeFn(
1124
1123
const isTypeOfResult = type . isTypeOf ( value , context , info ) ;
1125
1124
1126
1125
if ( isThenable ( isTypeOfResult ) ) {
1127
- promisedIsTypeOfResults . push ( isTypeOfResult ) ;
1128
- promisedIsTypeOfResultTypes . push ( type ) ;
1126
+ promisedIsTypeOfResults [ i ] = isTypeOfResult ;
1129
1127
} else if ( isTypeOfResult ) {
1130
1128
return type ;
1131
1129
}
1132
1130
}
1133
1131
}
1134
1132
1135
1133
if ( promisedIsTypeOfResults . length ) {
1136
- return Promise . all ( promisedIsTypeOfResults ) . then ( isTypeOfResults => (
1137
- promisedIsTypeOfResultTypes [
1138
- isTypeOfResults . findIndex ( isTypeOf => isTypeOf )
1139
- ]
1140
- ) ) ;
1134
+ return Promise . all ( promisedIsTypeOfResults ) . then ( isTypeOfResults => {
1135
+ for ( let i = 0 ; i < isTypeOfResults . length ; i ++ ) {
1136
+ if ( isTypeOfResults [ i ] ) {
1137
+ return possibleTypes [ i ] ;
1138
+ }
1139
+ }
1140
+ } ) ;
1141
1141
}
1142
1142
}
1143
1143
0 commit comments