Как правильно обрабатывать отложенные операции в Node.JS? - PullRequest
1 голос
/ 12 сентября 2011

Я новичок в программировании ASYNC, поэтому, пожалуйста, потерпите меня.У меня есть вызов API веб-службы, который может быть непредсказуемо медленным.На переднем конце я могу справиться с этим с помощью «загрузочного» лайтбокса или чего-то еще.Однако на сервере у меня есть запрос:

var req = http.request( options, function(res) {
  res.on('data', function(chunk) {
    doStuff();
  } );

  res.on('end', function() {
    doMoreStuff(); // This can take a while to get to.
    return someInfo();
  } );
} );

req.end();

Все это в модуле makeRequest.Так я должен передать свою функцию обратного вызова в makeRequest и затем запустить ее после события 'end'?Кажется, что это может привести к очень длинной цепочке событий.

Так что любая помощь в том, как структурировать это, будет принята с благодарностью.

note : вышеизложенноев основном псевдокод, так что если есть синтаксические ошибки, пожалуйста, поймите, что это псевдокод

1 Ответ

1 голос
/ 13 сентября 2011

Да, обычно вы передаете обратный вызов в любую функцию, в которой вы его используете, и когда выдается 'end', вы должны взять данные, которые вы собрали в запросе, и передать их вашему обратному вызову.

Я понимаю, что это псевдокод, и вы знаете, я все равно хочу это сказать.Помните, что «данные» можно вызывать более одного раза, и что «возврат» в вашей конечной функции ничего не сделает.

В качестве примера выполнения запроса вы можете посмотреть мой ответ здесь. Почему мой ExpressJS не может правильно выполнить команду запроса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...