微信多图上传代码,有时候返回空对象?

微信小程序一次只能上传一张图片。
有需求需要上传多张了,我写了个代码,图片虽然能全部上传到后台,但是返回结果有时候是1或者没有,还有时候是完整的。


export function uploadFiles(url, filePathArr, result = {}){
    filePathArr.forEach(function(i,index){
        uploadFileSync(url,i).then(res=>{
            result.success.push(res)
        }).catch(err=>{
            result.fail.push(err)
        })
    })
    return result
}

// 单个图片上传方法
function uploadFileSync(url, filePath, fromData = {}) {
    return new Promise((resolve, reject) => {
        uni.uploadFile({
            url: url, //仅为示例,非真实的接口地址
            filePath: filePath,
            name: 'imglist',
            fileType: 'image',
            success(res) {
                resolve(res)
            },
            fail: function(err) {
                reject(err)
            }
        })
    })
}

//调用的时候
uploadFiles(url, imageList,{ success:[], fial:[] })
阅读 1.5k
1 个回答

promise 是异步的,所以你应该等待。

你说无法看到就是因为打印时机的问题。你可以把对象绑定在页面上。会看到经过时间变化,内容也会变化

推荐问题