我正在使用NodeJS开发一个应用程序,其中两个查询相互依赖,这是对我的情况的解释。
我必须查询数据库中的一些值,例如A,然后,只有当数据库中有A时,我才必须查询数据库中的其他值B。
我知道我可以用NodeJS的自然方式来实现这一点,比如,当A的结果就绪时,执行A的查询,然后在A的回调中执行B的查询,然后在B的回调中呈现响应。
这里是我的问题,在我刚才提到的解决方案中是否存在设计问题--也许是关于嵌套回调。
第二,有什么方法可以使NodeJs成为非阻塞的阻塞吗?
发布于 2014-03-04 07:53:39
我意识到了一个名为异步的库,我希望在启动NodeJs项目时能够找到这个库。它能处理这件事和更多的事情。
异步提供了大约20个函数,其中包括通常的“函数”嫌疑人(map,reduce,filter,每个…)以及一些常见的异步控制流模式(并行、串联、瀑布式…)。所有这些函数都假定您遵循node.js的惯例,提供单个回调作为异步函数的最后一个参数。
来自站点的基本示例,可以在您的场景中提供帮助。
async.series([
function(callback){
// do db call one
callback(null, 'one');
},
function(callback){
// do db call two
callback(null, 'two');
}
],
function(err, results){
// results is now equal to ['one', 'two']
}); 发布于 2014-03-04 07:51:11
这里是我的问题,在我刚才提到的解决方案中是否存在设计问题--也许是关于嵌套回调。
不,你的解决方案很好。
第二,有什么方法可以使NodeJs成为非阻塞的阻塞吗?
是。您可以编写自己的c++扩展来提供阻塞调用。
https://stackoverflow.com/questions/22165860
复制相似问题