1.Promise是干什么的?
1.JavaScript的Promise
来处理异步操作。就和java中的new Thread差不多。
2.Promise有三种状态
Pending:进行中。初始状态,表示异步操作正在进行中
Fulfilled:已完成。表示异步操作已成功完成,并返回了一个值
Rejected:已拒绝。表示异步操作因某种原因失败,并返回了一个错误
2.Promise的使用语法
// new Promise(回调函数),这里的(resolve, reject)就是Promise的回调函数
const promise = new Promise((resolve, reject) => {
// 在这里执行异步操作。
var bol=false;
if (bol) {
// 如果出现错误,调用 reject 函数,并传递错误原因作为参数
reject('错误的回调');
} else {
// 如果操作成功,调用 resolve 函数,并传递操作结果作为参数
resolve('正确的回调');
}
});
// 对Promise对象进行后续处理
promise.then(result => {
// 处理操作成功的情况,result为操作成功的结果
console.log(result)
}).catch(error => {
// 处理操作失败的情况,error为发生的错误
console.log(error)
});
解释:new Promise
接受一个函数作为参数,并通过该函数来执行异步操作。这个函数会自动传入两个参数,分别是resolve
和reject
。resolve
用于将Promise状态更改为Fulfilled
并返回一个值,reject
用于将Promise状态更改为Rejected
并返回一个错误。
3.示例代码
getCard() {
const promise = new Promise((resolve, reject) => {
uni.request({
url: "这里模拟的是一个http请求回调后进行处理的例子",
data: {
},
header: {},
success: (res) => {
var haveData = res.data.data;
if (haveData == undefined) {
reject("无信息");
} else {
resolve("有信息");
}
}
});
});
promise.then(result=>{
console.log("result结果="+result)
}).catch(error=>{
console.log("error结果="+error)
})
},
4.总结
- Promise是一种处理异步操作的对象,提供了一种更简洁、可读性更强的代码结构。
- 使用
new Promise
可以创建一个新的Promise对象,并通过传入的函数执行异步操作。 - Promise可以处于Pending、Fulfilled和Rejected三种状态之一。
- 通过
then
方法可以处理成功的结果,通过catch
方法可以捕获错误。 - 可以使用链式调用来依次执行多个异步操作,并在每个异步操作完成后处理结果。
Promise.all
可以实现并发处理,并等待所有异步操作完成。