没有promise之前处理异步的方式
在promise产生之前,js 处理异步的方式是使用回调函数,一个回调函数执行完成,进行下一个回调函数。这样会导致层层嵌套,代码不清晰。容易进入回调地狱
promise 简介
promise的状态
promise 有三种状态 pending(进行中),resolved(成功),rejected(失败)
promise的状态是不可逆的
pending--->resolved
或者
pending--->rejected
promise 的两个回调函数 resolved rejected
promise 的参数是一个函数,函数里还有两个参数 resolved rejected
resolved(res) 处理成功的 函数 它传递的参数 会在then方法里输出
rejected(err) 处理失败的函数 它传递的参数 会在 catch方法里输出
let p1 = new Promise((resolved, rejected) => {
let randomVal = Math.random();
if (randomVal > 0.5) {
resolved(randomVal + "成功");
} else {
rejected(randomVal + "失败");
}
})
.then((res) => {
console.log(res)//0.6423699367939153成功
})
.catch((err) => {
console.log(err)//0.3423699367939153失败
});