Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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_Bluebird - Fatal编程技术网

Javascript 在蓝知更鸟结束前休息

Javascript 在蓝知更鸟结束前休息,javascript,promise,bluebird,Javascript,Promise,Bluebird,如果在一个等待的承诺中抛出错误,是否有任何方法停止p.all的执行 在这个例子中,我希望在“A-1000”之后看到“theu END”,而不是在“B-100000”之后 const P=require(“蓝鸟”); 常量p1=P.resolve()。然后(()=>{ for(设i=0;i{ for(设i=0;i console.error(“u端”); 是的,例如,您可以添加一个函数,在执行p.all之前检查二进制变量是否设置为0。然后,例如,当它被调用一次时,您可以将其设置为1。而不是使用p.

如果在一个等待的承诺中抛出错误,是否有任何方法停止p.all的执行

在这个例子中,我希望在“A-1000”之后看到“theu END”,而不是在“B-100000”之后

const P=require(“蓝鸟”);
常量p1=P.resolve()。然后(()=>{
for(设i=0;i{
for(设i=0;i console.error(“u端”);

是的,例如,您可以添加一个函数,在执行p.all之前检查二进制变量是否设置为0。然后,例如,当它被调用一次时,您可以将其设置为1。

而不是使用
p.all
,使用并传递承诺数:

如果拒绝了太多的承诺,以致于承诺永远无法兑现,则会立即拒绝,并按照拒绝原因的顺序列出拒绝原因的
AggregateError

i、 e


但是,请注意,您的假设示例无论如何都无法正常工作,因为您重复调用
控制台.log
的“忙循环”将占用浏览器的事件循环。

否。该返回发生在任何错误发生之前很久。简短的回答是否。您已经在p2中初始化了解析
const P = require("bluebird");


const p1 = P.resolve().then(() => {
  for(let i = 0 ; i <= 1000 ; i++) {
    console.log("A - ", i);
  }
  return Promise.reject(new Error('error'))
});

const p2 = P.resolve()
  .then(() => {
    for(let i = 0 ; i <= 100000 ; i++) {
      console.log("B - ", i);
    }
  });

return P.all([p1, p2])
  .catch(() => console.error("THE_END"));
return P.all([p1, p2], 2).catch(() => console.error('error'));