承诺会在实际的承诺响应之前返回对象承诺一毫秒

时间:2018-12-11 20:06:13

标签: typescript promise

我正在尝试做一个基本的检查,看看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 = '';
                });

1 个答案:

答案 0 :(得分:2)

你在做

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);
});