蓝鸟的done()vs spread()之间的区别

Sat*_*ani 1 javascript promise q bluebird

嗨,我没有得到什么的差异spread() VS done()JavaScript.Even蓝鸟蓝鸟库是包装Q所以Q也有两个在它的库中的函数.

谁能解释一下这两个函数之间的区别是什么?

提前致谢 !

Ber*_*rgi 7

甚至蓝鸟也是Q的包装......

哦,绝对不是.我希望这不会使你的问题无效吗?

我没有得到spread()vs 的区别done()

API文档可能会有很多帮助:

  • spread" 就像打电话一样.then,但履行价值或拒绝理由必须是一个数组,这个数组会被平铺到处理程序的形式参数中. "

    如果你有一个数组的承诺,spread将使用多个参数调用你的回调.

    这正是Q与:spread是" then,而是'传播’的阵列分为可变参数完成处理. "

  • done是" 喜欢.then(),但任何未处理的拒绝在这里结束将被抛出作为一个错误.[...它]用于明确标记一个承诺链的结束. "

    有关此内容的更多详细信息,请参阅错误处理文档.请注意,bluebird与Q在这里完全不同,因为它巧妙地计算出未处理的拒绝并自行报告它们 - 当拒绝达到某种程度时,你不必明确告诉它抛出全局错误.

    将其与Q的done文档进行比较,后者建议将其无限制地使用.

正如您所看到的,spread并且done是完全不同的方法,具有不同的目的.此外,doneBluebird和Q之间的模式也不同.