Часто вижу, как из кода на промисах получают тот же callback hell, и видят спасение в async (а там тоже проблем хватает со случайными блокировками)
Приведу свое решение задачи:
Избавились и от переменный в замыкании и от проблем с затенением. Разбить эту задачу на функции тоже будет просто.
Получилось чуть менее красиво чем с await, но так у нас нет опасности заблокировать параллельные запросы (хотя в примере их и нет), a Promise поддерживается в большем колличестве сред, чем генераторы/await
Да. Этот пункт глупость. С такой же логикой можно представить, что математики сменят механизм умножения, который так же используется внутри функции. А значит надо сменить его на функцию (в js умножение это оператор) и передавать ее параметром.
Простейший пример «type predicate» www.typescriptlang.org/docs/handbook/2/narrowing.html#using-type-predicates. Его невозможно сделать типобезопасным
И таких примеров в TS много(
Часто вижу, как из кода на промисах получают тот же
callback hell
, и видят спасение вasync
(а там тоже проблем хватает со случайными блокировками)Приведу свое решение задачи:
Избавились и от переменный в замыкании и от проблем с затенением. Разбить эту задачу на функции тоже будет просто.
Получилось чуть менее красиво чем с
await
, но так у нас нет опасности заблокировать параллельные запросы (хотя в примере их и нет), aPromise
поддерживается в большем колличестве сред, чем генераторы/await