Функция ожидания при использовании в качестве параметра функции не разрешается до ее запуска - PullRequest
0 голосов
/ 25 марта 2019

Следующий код работает, как и ожидалось, с использованием async / await:

try {
       let feedbacks = await feedbackService.get(this.feedBackOdataModel);
        this.feedBackJsonModel.setProperty('/Avaliacoes', feedbacks.results);


        } catch (error) {
            dialogService.showErrorDialog("Erro na obtenção das pesquisas de satisfação", error.statusText + '-' + error.statusCode);
            throw new Error(error);
        }

Выполнение приостанавливается до разрешения обратной связи.

Но это:

... 
this.feedBackJsonModel.setProperty('/Avaliacoes', await
     feedbackService.get(this.feedBackOdataModel).results); 
...

Я полагаю, что результат должен быть таким же, но он видит, что обещание разрешается после запуска setProperty.

1 Ответ

4 голосов
/ 25 марта 2019

Ваши два примера кода не эквивалентны. Во первых вы ждете

feedbackService.get(this.feedBackOdataModel)

что, по-видимому, обещание, а во втором вы ожидаете

feedbackService.get(this.feedBackOdataModel).results

что предположительно undefined. Так что, действительно, await по сути не имеет никакого эффекта, и undefined передается в setProperty почти сразу.

Чтобы исправить - используйте скобки, чтобы правильно указать, что вы ожидаете:

this.feedBackJsonModel.setProperty(
    '/Avaliacoes',
    (await feedbackService.get(this.feedBackOdataModel)).results
); 
...