嗨,我不明白 spread()
与 JavaScript bluebird 库的 done()
有什么区别。甚至 bluebird 也是 Q< 的包装器
所以 Q 在它的库中也有这两个函数。
谁能解释一下这两个函数之间的区别是什么?
提前致谢!
最佳答案
Even bluebird is wrapper of Q so…
哦,绝对不是。我希望这不会使您的问题无效?
I am not getting what is the difference of
spread()
vsdone()
?
API 文档可能会有很大帮助:
spread
是“就像调用.then
,但实现值或拒绝原因必须是一个数组,它被扁平化为处理程序的形式参数。”如果您对数组有 promise ,
spread
将使用多个参数 调用您的回调。Q 的作用是一样的:
spread
是“像then
,但将数组“传播”到可变参数实现处理程序中。”done
是“像.then()
,但是任何结束于此的未处理的拒绝都将作为错误抛出。[...它]用于显式标记 promise 链的末端。“有关这方面的更多详细信息,请参阅 error handling文档。请注意,这里的 bluebird 与 Q 完全不同,因为它巧妙地计算出未处理的拒绝和 reports them on its own。 - 你不必明确地告诉它在拒绝到达某个点时抛出全局错误。
将其与 Q's
done
documentation 进行比较,建议无限制使用。
如您所见,spread
和done
是完全不同的方法,目的不同。此外,done
模式在 Bluebird 和 Q 之间有所不同。
关于javascript - done() 与 bluebird 的 spread() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29387231/