@komarevtsev

Как завершить async waterfall?

Добрый день. Я использую модуль async в node.js
Встал вопрос как правильно завершить выполнение async waterfall.
Логика следующая: запросить кеш, если кеш есть - отдать сразу ответ, если кеша нет - сделать запрос к api
Так вот если кеш есть - хочется завершить сразу waterfall. Можно пробросить объект кеша первым параметром в callback, как ошибку, но это как-то некрасиво и может быть неочевидно для других. Есть ли какие-то другие варианты?
  • Вопрос задан
  • 237 просмотров
Пригласить эксперта
Ответы на вопрос 3
AppFA
@AppFA
Frontend developer at Yandex
А не проще сделать на промисах?
Псевдокод:
cache.get(key).then((data) => {
    if (data) return data;

    return api.something;
});
Ответ написан
Комментировать
VladimirZhid
@VladimirZhid
Нравится делать что-то интересное и полезное.
А точно ли здесь нужен waterfall? Получение кеша блокирующая операция? Если да, то можно и обернуть в обычный промис. По твоему описанию мне кажется что можно сделать и без waterfall
waterfall как бе нужен для последовательного запуска функций с блокирующими операциями и возможностью передачи агрументов от одной к следующей...
Ответ написан
Комментировать
@tex0
async waterfall, если я не ошибаюсь, не умеет в динамический flow. А у вас как раз алгоритм с условием. Используйте промисы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы