0

我只是对 node.js 感兴趣。

如果一切都是“非阻塞”执行的,它什么时候将结果刷新到客户端(浏览器),如果我想从数据库获取结果,发布到其他服务器,并返回从其他服务器获取的结果,我需要将回调放在这样的回调中?

var dbquery = db.query(function(result){
    var postToServer = otherServer.post(result.id,function(networkResult){
           render(networkResult)
    })

})

还是可以“更优雅”地处理?

4

2 回答 2

0

这正是 promise 的用途。很少有库在 JavaScript 中实现它们。

https://github.com/kriszyp/node-promise http://howtonode.org/promises

这里解释的有点太多了,所以你必须去阅读并查看一些示例代码。

基本上,您的代码将如下所示:

query_db()
.then(function (result) { return otherServer.post(result.id); })
.then(function (networkResult) { render(networkResult); });
于 2013-08-29T23:09:16.030 回答
0

使用库,例如​​ https://github.com/kriskowal/q(承诺)或https://github.com/caolan/async

于 2013-08-29T23:17:02.497 回答