我是ASYNC编程的新手,所以请耐心等待。我有一个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'
事件之后运行吗?这似乎可以导致一个非常长的链式事件结构。
因此,非常感谢任何关于如何构建这方面的帮助。
注意:以上主要是伪代码,所以如果有语法错误,请理解它是伪代码
答案 0 :(得分:1)
是的,通常你会将回调传递给你所拥有的任何函数,并且当发出'end'时,你应该获取你在请求中收集的数据,并将其传递给你的回调。
我意识到它是伪代码,你可能知道,我只是想说它。请记住,“数据”可以被多次调用,并且在您的结束函数中“返回”将不会执行任何操作。
有关执行请求的示例,您可以在此处查看我的答案。 Why won't my ExpressJS properly execute a request command?