鍍金池/ 問答/HTML/ 如何做到循環(huán)異步操作,js

如何做到循環(huán)異步操作,js

我在上傳多張圖片的需求中遇到了問題。
需求是這樣的,我有一個image數(shù)組,保存本地圖片地址,我向把圖片全部上傳到七牛云后,再把上傳的結(jié)果提交到我的服務(wù)器。(但是,我只能得到第一張圖片的上傳結(jié)果,這次就提交到服務(wù)器了)

1.上傳的函數(shù)

const upload = (url) => {
    return new Promise((resolve,reject) => {
        //單張上傳成功后 得到 res
        resolve(res);
    })
}

2.需要上傳的圖片數(shù)組

let imageArr = ['uri1','uri2','uri3'];
這個時候就不知道怎么解決了。我需要得到 每張照片上傳后的res

麻煩各位幫忙看看,謝謝,工作順利!

回答
編輯回答
笑忘初

個人覺得使用aysnc await比promise.all更好,保證順序的同時不用等到全部結(jié)束才回調(diào)

2017年12月26日 03:48
編輯回答
臭榴蓮
const upload = (url) => {
    return new Promise((resolve,reject) => {
        //單張上傳成功后 得到 res
        resolve(res);
    })
}
const uploadAll = (urls) => {
    return Promise.all(urls.map(upload));
}

uploadAll(  ['uri1','uri2','uri3'] )
    .then( reses => {
        // 得到所有res啦
    } )

關(guān)于Promise.all http://es6.ruanyifeng.com/#do...

2018年2月3日 14:42
編輯回答
不將就
let promises = imageArr.map(function (_url) {
  return upload(_url)
});

Promise.all(promises).then(_e=>{/*success*/}).catch(_e=>{/*error*/})
2017年4月17日 10:32