首页 > 解决方案 > 承诺在实际承诺响应之前返回对象承诺一毫秒

问题描述

我正在尝试进行基本检查以查看 myAnswer 是否有答案,我的所有检查功能都可以正常工作。我的问题是,在应该返回我从 myAnswer 获得的字符串的最终函数中,它正在返回 [object Promise]。我不知道为什么当我解决承诺时,这不是直接返回我的 String 而不是闪烁 [object promise] 。

如果我能得到一些帮助,那就太好了!

this.myAnswer = XapiStoreService.retrieveQuestionFillIn(this.app.getStudent(), pages[pageIndex])
                .then((answer:string) => {
                  this.myAnswer = answer;
                }, (reason:string) => {
                  this.myAnswer = '';
                });

标签: typescriptpromise

解决方案


你正在做的

this.myAnswer = XapiStoreService.retrieveQuestionFillIn(…).then(…);

将承诺分配给myAnswer. 那就是你在承诺解决并覆盖myAnwer. 你可能想要类似的东西

this.myAnswer = "loading";
XapiStoreService.retrieveQuestionFillIn(this.app.getStudent(), pages[pageIndex]).then((answer:string) => {
    this.myAnswer = answer;
}, (reason:string) => {
    this.myAnswer = 'error';
    console.error(reason);
});

推荐阅读