首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >node.js异步库

node.js异步库
EN

Stack Overflow用户
提问于 2011-02-28 15:48:51
回答 3查看 16.5K关注 0票数 56

有大量的库可以帮助修复回调综合症的层次。

事实上,有太多了,我该用哪一个?

EN

回答 3

Stack Overflow用户

发布于 2011-03-01 04:55:45

选一个你喜欢的:P.例如,我喜欢async。但Step也非常出名。我认为有这么多模块是一件非常好的事情。node.js社区正在推出一些非常好的模块。使用NPM安装它们根本不会花费您任何精力。

票数 6
EN

Stack Overflow用户

发布于 2012-11-15 03:36:10

我喜欢使用promises from Q

如果函数不能在不阻塞的情况下返回值或抛出异常,则可以返回promise。promise是一个对象,它表示函数最终可能提供的返回值或抛出的异常。promise还可以用作远程对象的代理,以克服延迟。

在第一个过程中,promises可以缓解“末日金字塔”:代码向右行进的速度比向前行进的速度更快的情况。

step1(function (value1) {
    step2(value1, function(value2) {
        step3(value2, function(value3) {
            step4(value3, function(value4) {
                // Do something with value4
            });
        });
    });
});

使用promise库,您可以将金字塔展平。

Q.fcall(step1)
.then(step2)
.then(step3)
.then(step4)
.then(function (value4) {
    // Do something with value4
}, function (error) {
    // Handle any error from step1 through step4
})
.done();

使用这种方法,您还可以获得隐式错误传播,就像try、catch和just一样。step1中的错误将一直流向step5,在那里它会被捕获和处理。

回调方法被称为“控制反转”。接受回调而不是返回值的函数是在说:“不要调用我,我会调用你的。”承诺取消反转,干净利落地将输入参数与控制流参数分开。这简化了API的使用和创建,特别是可变参数、rest参数和传播参数。

票数 5
EN

Stack Overflow用户

发布于 2012-08-19 12:08:48

我对其他同步库的问题是,他们经常要求我在一开始就定义我的所有任务,并且没有提供我发现的干净直观的API。我只是想随时随地将任务推送到一个组中,然后以并行或串行的方式执行该组。

我喜欢TaskGroup中的流功能,并在包括DocPad和BugHerd在内的许多大型项目中使用了它。Examples are in the README.

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

https://stackoverflow.com/questions/5139381

复制
相关文章

相似问题

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