Promise同步处理 异步任务记录
//1. 保存设备图片
var installImgs = [];
let p1List = [];
this.baseFormData.installImgs.forEach(img => {
let p = new Promise((resolve, reject) => {
uploadFile({
"filePath": img
})
.then(res => {
installImgs.push(res.data.id);
resolve();
}).catch(err => {
reject();
});
})
p1List.push(p);
})
//2. 保存铭牌图片
var nameplaceImgs = [];
let p2List = [];
this.baseFormData.nameplaceImgs.forEach(img => {
let p = new Promise((resolve, reject) => {
uploadFile({
"filePath": img
})
.then(res => {
nameplaceImgs.push(res.data.id);
resolve();
}).catch(err => {
reject();
});
});
p2List.push(p);
});
//3. 保存签名图片
let p3 = new Promise((resolve, reject) => {
console.log('p3 ing...')
uploadFile({
"filePath": this.baseFormData.signImg
}).then(res => {
resolve(res.data.id);
}).catch(err => {
console.error('保存签名失败', err);
reject(null);
})
});
//4. 保存设备安装信息
Promise.all(p1List).then(() => {
Promise.all(p2List).then(() => {
p3.then((signImg)=>{
console.log('installImgs', installImgs)
console.log('nameplaceImgs', nameplaceImgs)
console.log('signImg', signImg);
this.baseFormData.installImgs = JSON.stringify(
installImgs);
this.baseFormData.nameplaceImgs = JSON.stringify(
nameplaceImgs);
this.baseFormData.signImg = signImg;
createInstallInfo2(this.baseFormData)
.then(response => {
uni.showToast({
title: `提交成功`
})
})
})
})
})