Javascript 在蓝知更鸟结束前休息
如果在一个等待的承诺中抛出错误,是否有任何方法停止p.all的执行 在这个例子中,我希望在“A-1000”之后看到“theu END”,而不是在“B-100000”之后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.
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'));