@vasromand

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

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


Так ли я описал реализацию - через двойной callback? Или все нужно написать как-то по-другому?
  • Вопрос задан
  • 2565 просмотров
Решения вопроса 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.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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