С помощью when.js как преобразовать обещание в обратный вызов в стиле Node.js?

Я использую IcedCoffeeScript.

Я хочу написать это:

User.find(id).always esc done или же await User.find(id).always defer e, user

Но Promise#always устарела в when.js,

Есть ли другой способ?

1 ответ

Promise#always устарела в when.js и будет удален в следующей версии.

Тем не мение, promise.always(onFulfilledOrRejected, onProgress) это всего лишь ярлык для .then(onFulfilledOrRejected, onFulfilledOrRejected, onProgress), Так что вместо использования

.always(handler)

Вам придется использовать

.then(handler, handler)

Если может повлиять на ваш код, если вы использовали встроенные функции для .always как с .then было бы лучше извлечь их как отдельные функции.

Авторы when.js рекомендую использовать promise.ensure вместо promise.always, Подробнее здесь.

promise.ensure безопаснее в том, что он не может превратить неудачу в успех случайно (что always может сделать, просто вернувшись успешно!).

Я надеюсь, что это поможет.

Другие вопросы по тегам