Coding style 如何正确处理Node.JS中的延迟操作?

Coding style 如何正确处理Node.JS中的延迟操作?,coding-style,node.js,Coding Style,Node.js,我是异步编程新手,所以请耐心听我说。我有一个对web服务API的调用,它的速度可能非常慢。在前端,我可以用一个“装载”灯箱或其他东西来处理它。但是,在后端,我有我的请求: var req = http.request( options, function(res) { res.on('data', function(chunk) { doStuff(); } ); res.on('end', function() { doMoreStuff(); // This c

我是异步编程新手,所以请耐心听我说。我有一个对web服务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'
事件之后运行它吗?这似乎会导致一个非常长的事件链结构

因此,任何关于如何构建此结构的帮助都将不胜感激


注意:以上大部分都是伪代码,因此如果有语法错误,请理解它是伪代码

是的,通常您会将回调传递到任何函数中,当发出“end”时,您应该获取请求中收集的数据,并将其传递给回调

我知道这是伪代码,你可能知道,我只是想说出来。请记住,“数据”可以被多次调用,并且您的最终函数中的“return”不会起任何作用

举个请求的例子,你可以看看我的答案。

是的,通常您会将回调传递给任何函数,当发出“end”时,您应该获取在请求中收集的数据,并将其传递给回调

我知道这是伪代码,你可能知道,我只是想说出来。请记住,“数据”可以被多次调用,并且您的最终函数中的“return”不会起任何作用

举个请求的例子,你可以看看我的答案。

返回的是
CoffeeScript
的痕迹。谢谢你的回答!返回是来自
CoffeeScript
的痕迹。谢谢你的回答!