Задать вопрос
@vasromand

Как правильно писать асинхронный код?

Всем привет!
Пытаюсь понять, как правильно писать асинхронный код (node.js), есть проблемка с одной конструкцией. Допустим есть некая функция, которая принимает данные, при определенном условии изменяет их и передает дальше. Как правильно вызвать callback?
function(data, callback){
  if(data.someCondition){
    doAsyncCode(data, function(err, result){
      // Здесь по идее должен быть вызов callback
      callback(data)
      return
    }
  }
  // Но и здесь должен быть вызов callback, но без модификации данных
  callback(data)
}


Так ли я описал реализацию - через двойной callback? Или все нужно написать как-то по-другому?
  • Вопрос задан
  • 2567 просмотров
Подписаться 2 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
1. У вас callback выполнится 2 раза, если так задумано - все правильно, в противном случае - нет. Второй callback вызов должен быть в else.
2. return не нужен так как после него все равно ничего не происходит.

В остальном явных проблем не вижу))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dizballanze
@dizballanze
Software developer at Yandex
Вы все правильно поняли, так и нужно делать. Только в if не хватает return.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы