Обещание возвращает обещание объекта за миллисекунду до фактического ответа обещания. - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь выполнить базовую проверку, чтобы увидеть, есть ли у myAnswer ответ или нет, у меня все эти функции проверки работают отлично.Моя проблема в том, что в последней функции, которая должна возвращать строку, которую я получаю от myAnswer, она возвращает [объект Promise].Я понятия не имею, почему это не возвращает мою строку напрямую, а не мигает [обещание объекта], когда я выполняю обещание.

Если бы я мог получить какую-то помощь, это было бы здорово!

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

1 Ответ

0 голосов
/ 11 декабря 2018

Вы делаете

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);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...