JavaScript ES6 Promiss对象 (2)

两个异步任务同时向同一个url发送请求,谁先得到数据,另外的那个异步任务获得的数据就会被丢弃

//2s后输出“执行完成1” let p =new Promise(function(resolve){ setTimeout(function(){ resolve("hello"); console.log('执行完成1'); },2000); }); //1s后输出“执行完成2” let p1 =new Promise(function(resolve){ setTimeout(function(){ resolve("hello 2"); console.log('执行完成2'); },1000); }); //两个异步任务同时开始 let mixedPromisesArray = [p,p1]; let p3 = Promise.race(mixedPromisesArray).then(data=>{ //这里的data为hello 2,hello被丢弃 console.log(data); }); all()

参数也是可迭代的对象,如数组

一般用于几个任务同时并行运行的情况

当某个任务失败,状态就会变为reject

//2s后输出“执行完成1” let p =new Promise(function(resolve){ setTimeout(function(){ resolve("hello"); console.log('执行完成1'); },2000); }); //1s后输出“执行完成2” let p1 =new Promise(function(resolve){ setTimeout(function(){ resolve("hello 2"); console.log('执行完成2'); },1000); }); //两个异步任务同时开始 let mixedPromisesArray = [p,p1]; let p3 = Promise.all(mixedPromisesArray).then(data=>{ //这里的data数组,存放着之前两个异步回调传的数据 console.log(data); }); 参考


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzpgg.html