下面的代码:
import {initConnection,IapIosSk2, setup} from "react-native-iap"
async nativeTest() : Promise<ProductStatus[]>{
try {
let stat: Promise<ProductStatus[]> = await (IapIosSk2).subscriptionStatus('sku')
setup({storekitMode:'STOREKIT2_MODE'})
initConnection()
return await new Promise((resolve, reject) => {
if (stat) {
for (let data in stat){
console.log(data)
}
resolve(stat);
} else {
reject(new Error('Failed'));
}
});
}
catch(e){
console.log(e)
}
}
我正在使用react-native-IAP库,并且在“stat”变量下收到以下错误:
Type 'ProductStatus[]' is missing the following properties from type 'Promise<ProductStatus[]>': then, catch, finally, [Symbol.toStringTag]
我假设这是一个错误,我如何处理的承诺?任何决议将是伟大的,谢谢。
2条答案
按热度按时间5t7ly7z51#
await
的全部意义在于,它将包含函数置于休眠状态,直到解析了promise,然后将其求值为promise的解析值。如果你想在那里得到一个承诺,不要使用
await
。(不要这样做,该行之后的代码假定你没有承诺)。如果您使用
await
,则可能需要ProductStatus[]
,而不是Promise<ProductStatus[]>
。kqlmhetl2#
这里的变量类型将不会是Promise〈ProductStatus[],因为你已经使用await完成了承诺。所以变量stat类型应该是ProductStatus[],