Javascript 在带有Q的节点中,介于';价差';和';全部结算';?
我发现Q中非常有用的一个功能是Javascript 在带有Q的节点中,介于';价差';和';全部结算';?,javascript,node.js,promise,q,Javascript,Node.js,Promise,Q,我发现Q中非常有用的一个功能是Q.allSettled函数,该函数用于承诺数组,允许您在没有fail处理程序的情况下处理失败案例 另一方面,现在我需要使用Q.spread函数将一些承诺和一些参数传播到然后处理程序,如果一些承诺失败,则不需要到达失败处理程序 一个可能的解决方案是Q的文档中建议的: q.allSettled([saveToDisk(), saveToCloud(), 12345]) .spread(function (disk, cloud, somenum) { cons
Q.allSettled
函数,该函数用于承诺数组,允许您在没有fail
处理程序的情况下处理失败案例
另一方面,现在我需要使用Q.spread
函数将一些承诺和一些参数传播到然后处理程序,如果一些承诺失败,则不需要到达失败
处理程序
一个可能的解决方案是Q的文档中建议的:
q.allSettled([saveToDisk(), saveToCloud(), 12345])
.spread(function (disk, cloud, somenum) {
console.log('somenum: ' + somenum.value);
console.log("saved to disk:", disk.state === "fulfilled");
console.log("saved to cloud:", cloud.state === "fulfilled");
});
但我想知道,这个库是否提供了类似的功能,比如Q.com
?
若否,有否计划?我是唯一一个认为拥有这样的东西是个好主意的人吗?这没有意义,因为这不是Q的责任。AllSetted([…])
决定如何传递解析的值,这取决于链接到它的方法
Q.allSettled([…])
后面可以跟两个:
.spread(function(comma, separated, resolved, values){...})
及
如果不链接一个方法,您将永远看不到Q.spreadsollected([…])
您使用的是哪个版本的节点?10.35,为什么?我的问题更像是一个与Q相关的问题,但我想你会提出其他库,对吧?好吧,JavaScript有本机扩展,Q.spread
只是一个垫片。Q是一个旧的库,我不会使用它,但这不是我的意思。节点4.0.0是一个选项吗?不完全是,ATM Q是强制性的。出于好奇,你的建议是什么?你能发布一个工作方法吗?我还是不知道你在找什么。它与Q.allSettled([…]).spread(function(…){…})有何不同?
.then(function(arrayOfResolvedValues){...})