Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在带有Q的节点中,介于';价差';和';全部结算';?_Javascript_Node.js_Promise_Q - Fatal编程技术网

Javascript 在带有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中非常有用的一个功能是
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){...})