AngularJS обещает планирование работы с `async` /` await`? - PullRequest
0 голосов
/ 19 октября 2018

TypeScript постоянно предлагает мне изменить мой сервисный код AngularJS на async / await функций.

TypeScript suggestion

Насколько я понимаю, использованиеКлючевое слово await полностью подходит для сторонних обещаний, поскольку это просто синтаксический сахар для вызова then.Тем не менее, я обычно возвращаю угловые обещания, потому что они необходимы для хорошей игры с циклом дайджеста.

TypeScript error

Этот код выдает мне ошибку, поскольку функции async переносят свое содержимое в обещание ES6.Будет ли это иметь значение для планирования Angular, учитывая, что возвращенное обещание все еще связано с обещанием Angular?Или мне следует отправить в TypeScript проблему с предложением async / await, когда функции явно не возвращают обещание ES6?

1 Ответ

0 голосов
/ 30 ноября 2018

Для тех, кто просматривает это в будущем.Это не играет красиво.Функции async обертывают свое содержимое в глобальное обещание ES6, поэтому, если вы ожидаете, что обещания AngularJS в рамках изменений в конечном итоге будут достигнуты, но планирование будет странным, когда вы объедините вместе $q обещания и обещания ES6, поэтому обычно будет искусственная задержкадо того, как изменения будут отражены в DOM.

С другой стороны, Angular 2+ исправляет источники событий и обещания DOM, поэтому async-await должно работать должным образом с более новыми версиями.

...