Я широко использую обещания JavaScript в разрабатываемом одностраничном приложении.В некоторых случаях мне нужно, чтобы метод then работал синхронно, если обещание уже выполнено.Для этой цели я написал собственную реализацию обещания как класс-оболочку, который прекрасно работает, но не позволяет использовать async / await.Итак, я хотел бы знать, есть ли способ иметь оба, так как мне кажется, что async / await действительно просто синтаксический сахар вокруг «затем».
Реализация пользовательского обещания уже реализует PromiseLike
Интерфейс TypeScript, но, видимо, async / await всегда нуждается в нативном обещании.Почему?
Одна возможность, о которой я подумал, - это заменить метод «тогда» объекта реального обещания вместо того, чтобы строить свою собственную обертку сверху.Будет ли это работать?
Причина, по которой важно вызывать «затем», заключается в том, что конец цепочки обещаний является свойством компонента React, а компонент React отображает индикатор загрузки до тех пор, пока обещание не станетрешена.Без моей оболочки индикатор загрузки отображается на короткое время каждый раз при обновлении компонента, что также нарушает взаимодействие с пользователем.
Возможно, существует другой способ решения этой проблемы.Это мое первое погружение в мир JavaScript.
Я использую TypeScript и ориентируюсь на ES6.