首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在TypeScript中正确地返回承诺?

如何在TypeScript中正确地返回承诺?
EN

Stack Overflow用户
提问于 2022-11-28 17:59:45
回答 2查看 33关注 0票数 0

我有以下代码:

代码语言:javascript
复制
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本机-IAP库,并在"stat“变量下获得以下错误:

代码语言:javascript
复制
Type 'ProductStatus[]' is missing the following properties from type 'Promise<ProductStatus[]>': then, catch, finally, [Symbol.toStringTag]

我假设这是我如何处理承诺的一个错误?任何决议都会很好,谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-28 18:02:59

let stat: Promise = await (IapIosSk2).subscriptionStatus('sku')

await的全部要点是让包含的函数处于休眠状态,直到承诺被解析,然后计算为承诺的解析值。

如果你想要一个承诺,不要使用await。(不要这样做,那行之后的代码假设你没有承诺)。

如果您使用await,那么您可能需要的是ProductStatus[]而不是Promise<ProductStatus[]>

票数 2
EN

Stack Overflow用户

发布于 2022-11-28 18:04:53

在这里,变量类型将不是Promise

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74604701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档