Promise相关
使用Promise 包装一个 延时函数
function delay(time:int):void{
return new Promise(resolve=>setTimeout(resolve, time))
}
// 使用
delay.then(()=>{
.../
})
async function delay(time:int){
await new Promise( resolve=>setTimeout(resolve, time) )
}
// 使用 延时5秒
await delay(5000)
PromiseAll 并发接口
// 创建上传任务列表
const upload_list = [
uploadFileApi(`${data.beDfsuInfo.md5}.dfsu`, data.beDfsuInfo.file), // 上传工程前 dfsu
uploadFileApi(`${data.afDfsuInfo.md5}.dfsu`, data.afDfsuInfo.file), // 上传工程后 dfsu
]
// 如果存在
if (data.projectRange.fileList.length > 0) {
data.projectRange.fileList.map((eachFile) => {
upload_list.push(uploadFileApi(`${data.projectRange.md5}${eachFile.ext}`, eachFile.file))
})
}
const file_upload_res_list = await Promise.all(upload_list)
// 检查是否上传成功
if (!file_upload_res_list.every((res) => res)) {
console.log("有文件上传失败")
console.log(file_upload_res_list)
} else {
console.log("所有文件上传成功")
}
包装FileReader()异步调用为Promise
async function getPngSize(file) {
let reader = new FileReader();
reader.readAsDataURL(file);
return new Promise(resolve => {
reader.onload = async () => {
let res = cpsImg.ReadPNGBase64(reader.result);
resolve(res);
};
});
// await promise;
}
img标签延时包装