您好我没有得到蓝鸟库JavaScript的spread()
与done()
的区别。甚至蓝鸟是Q
的包装,所以Q也有两个函数&# 39; s库。
有人可以解释一下这两个功能之间有什么区别吗?
提前致谢!
答案 0 :(得分:7)
即使蓝鸟也是Q的包装......
哦,绝对不是。我希望这不会使你的问题无效吗?
我没有得到
spread()
与done()
的区别?
API文档可能会有很大帮助:
spread
" 就像调用.then
一样,但是履行值或拒绝原因必须是一个数组,它被平铺到处理程序的形式参数。 "
如果您对数组有承诺,spread
会使用多个参数调用您的回调。
它与Q的作用相同:spread
是" 赞then
,但"传播"将数组转换为可变执行处理程序。"
done
" 与.then()
类似,但此处结束的任何未处理拒绝都会被视为错误。 [...]用于明确标记承诺链的结尾。"
有关详细信息,请参阅error handling文档。请注意,bluebird与Q在这里完全不同,因为它巧妙地计算出未处理的拒绝和reports them on its own - 当拒绝达到某种程度时,你不必明确告诉它抛出全局错误。
将其与Q's done
documentation进行比较,{{3}}建议无限制使用。
如您所见,spread
和done
是完全不同的方法,具有不同的目的。此外,Bluebird和Q之间的done
模式也有所不同。