Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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 等待第一个承诺得到解决或全部被拒绝_Javascript_Promise - Fatal编程技术网

Javascript 等待第一个承诺得到解决或全部被拒绝

Javascript 等待第一个承诺得到解决或全部被拒绝,javascript,promise,Javascript,Promise,我需要在第一个ajax调用成功并返回true时解决我的承诺,否则我需要等待所有被拒绝的承诺,然后返回false 我可以用promise.race、AllSetted或Similar来完成吗?您需要的是: […]一旦iterable中的一个承诺实现,将返回一个与该承诺的值解析的承诺。如果iterable中没有承诺(如果所有给定的承诺都被拒绝),则返回的承诺将被AggregateError拒绝[…] 但它仍然是实验性的,但您可以检查现有的(我没有检查它的正确性,但乍一看它似乎是有效的): 函数任意(

我需要在第一个ajax调用成功并返回true时解决我的承诺,否则我需要等待所有被拒绝的承诺,然后返回false

我可以用promise.race、AllSetted或Similar来完成吗?

您需要的是:

[…]一旦iterable中的一个承诺实现,将返回一个与该承诺的值解析的承诺。如果iterable中没有承诺(如果所有给定的承诺都被拒绝),则返回的承诺将被AggregateError拒绝[…]

但它仍然是实验性的,但您可以检查现有的(我没有检查它的正确性,但乍一看它似乎是有效的):

函数任意(承诺){
回报你的承诺(
promises.map(promise=>
承诺。然后(val=>{
投掷val;
},reason=>reason),
),
).然后(原因=>{
抛出原因;
},firstResolved=>firstResolved);
};

试试
promise.all()
这能回答你的问题吗@user9879287
Posmise.all()
等待解决所有承诺,或在其中一个承诺被拒绝时立即拒绝。这与OP的要求正好相反。