2011-09-12 46 views
1

我是ASYNC编程新手,请耐心等待。我打电话给Web服务API,速度可能难以预料。在前端,我可以用一个“加载”灯箱来处理它。然而,在后端,我有我的要求:如何正确处理Node.JS中的延迟操作?

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'事件之后运行?看起来这可能会导致一个很长的链接事件结构。

所以任何帮助如何构造这将不胜感激。

:以上主要是伪代码,所以如果有语法错误,请大家明白,它是伪

回答

1

是的,通常你会传递一个回调到这个有什么功能,并在“结束”被发送,你应该把你在请求中收集的数据,并将其传递给你的回调。

我意识到这是伪代码,你可能知道,我只是想反正说。请记住,'数据'可以被多次调用,并且在您的最终功能中的'返回'将不会执行任何操作。

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

+0

返回是来自'CoffeeScript'的痕迹。尽管谢谢你的回答! – Shamoon