Promise示例

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: `提交成功`
											})
										})
								})
							})
						})
posted @   赵钱富贵  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2019-09-06 计算机网络-vlan划分
2019-09-06 软件工程
点击右上角即可分享
微信分享提示