简介
在 JavaScript 中,Promise 是一种用于处理异步操作的对象,它代表了一个异步操作的最终完成或失败,并且其最终结果可能是一个值或者错误。通常情况下,Promise 的状态不受外界影响,一旦状态改变就不会再变。
基本使用
- new创建Promise异步对象
- Promise需要传参(参数为对象)
- 会返回两个函数类型的数据,resolve 表示 成功,reject 表示 失败,可以传入结果 X
- then 需要传两个函数,分别是成功、失败
例子:
// 创建
const promise=new Promise((resolve,reject)={
// 判断什么情况是成功与失败
if(true){
// 成功 resolve(x);
}else{
// 失败 reject(x);
}
});
// 使用
promise.then(
// 成功
(value)=>{},
// 失败
(reason)=>{}
)
对象状态、结果属性介绍
Promise实例中有两个属性【PromiseState】、【PromiseResult】
【PromiseState】:状态pending初始、resolved成功、rejected失败,只有两种改变,pending —>resolved、pending —>rejected
【PromiseResult】:对象的结果值,保存异步对象[成功/失败]的结果
实际案例
作用:图片/文件多个上传,控制并发
// 上传文件
const uploadFile = (file) => {
const param=new FormData();
param.append('file',file);
return new Promise((resolve,reject) => {
// 上传接口
uploadFuleApi(param).then(res => {
// 成功,可以传结果
resolve(res);
}).catch (err => {
// 失败
reject();
})
})
}
// 使用
const f = async () => {
try {
// 使用方法获取上传结果
let data = await uploadFile(file);
console.log('Uploaded file:', data);
// 其他操作
} catch (error) {
console.error('Upload failed:', error);
// 错误处理
}
}