首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nodejs中的阻塞IO

nodejs中的阻塞IO
EN

Stack Overflow用户
提问于 2014-03-04 07:45:25
回答 2查看 228关注 0票数 0

我正在使用NodeJS开发一个应用程序,其中两个查询相互依赖,这是对我的情况的解释。

我必须查询数据库中的一些值,例如A,然后,只有当数据库中有A时,我才必须查询数据库中的其他值B。

我知道我可以用NodeJS的自然方式来实现这一点,比如,当A的结果就绪时,执行A的查询,然后在A的回调中执行B的查询,然后在B的回调中呈现响应。

这里是我的问题,在我刚才提到的解决方案中是否存在设计问题--也许是关于嵌套回调。

第二,有什么方法可以使NodeJs成为非阻塞的阻塞吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-04 07:53:39

我意识到了一个名为异步的库,我希望在启动NodeJs项目时能够找到这个库。它能处理这件事和更多的事情。

异步提供了大约20个函数,其中包括通常的“函数”嫌疑人(map,reduce,filter,每个…)以及一些常见的异步控制流模式(并行、串联、瀑布式…)。所有这些函数都假定您遵循node.js的惯例,提供单个回调作为异步函数的最后一个参数。

来自站点的基本示例,可以在您的场景中提供帮助。

代码语言:javascript
复制
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']
}); 
票数 2
EN

Stack Overflow用户

发布于 2014-03-04 07:51:11

这里是我的问题,在我刚才提到的解决方案中是否存在设计问题--也许是关于嵌套回调。

不,你的解决方案很好。

第二,有什么方法可以使NodeJs成为非阻塞的阻塞吗?

是。您可以编写自己的c++扩展来提供阻塞调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22165860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档