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 can take a while to get to.
    return someInfo();
  } );
} );

req.end();

所有这些都在 makeRequest 模块中。那么我应该将回调函数传递给 makeRequest ,然后让它在 'end' 事件之后运行吗?看起来这可能会导致非常长的链式事件结构。

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

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

最佳答案

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

我意识到这是伪代码,你可能知道,无论如何我只是想说出来。请记住,“data”可以被多次调用,并且最终函数中的“return”不会执行任何操作。

有关执行请求的示例,您可以在此处查看我的答案。 Why won't my ExpressJS properly execute a request command?

关于coding-style - 如何正确处理 Node.JS 中的延迟操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7390707/

相关文章:

javascript - NodeJS-RethinkDB : Cannot read property 'id' of null

C++11 变量初始化和声明

coding-style - 在 python 中循环使用条件

c++ - 我可以避免超过 3 个级别的缩进吗?

javascript - AWS Lambda 和 promise : Callbacks not being called

arrays - Array .push 在每个循环内返回用相同对象填充的数组

python - 导入 Ansible 模块实用程序

visual-studio - Visual Studio 2015 - 代码样式设置

javascript - 获取 "cannot read property ' [方法 ]' of undefined"

node.js - 由于 Node.js 的异步性,不会发生更改