javascript - promise.all()会按照顺序返回吗
PHP中文网
PHP中文网 2017-04-11 10:30:54
[JavaScript讨论组]
let promises = [1,2,3,4].map(function (id) {
  return me.getHighBid(id);
});
Promise.all(promises).then(posts){
    console.log(posts)
}

代码如上,使用Promise.all管理4个ajax请求,那么成功返回来的posts数组会严格按照id分别为1,2,3,4请求得到的数据来排序吗

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
天蓬老师

会的 (我靠两个字的答案还不能提交)

如果这个promise队列里出现了reject,那么Promise.all()返回的结果会被一个reject而报销(其他正常返回也没用了),所以为此你最好使队列每一个ajax封装一个:

Promise.race(ajax,()=>new Promise(resolve=>{
    setTimeout(()=>reslove('timeout'),3000)
}))

这样也可以解决某一个ajax响应时间巨长,导致Promise.all()一直pending的问题

高洛峰

是会按顺序来排列的


本来打算就回一个'会'字,结果提示我回答太短,23333333

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号