Promise(一)
什么是Promise?
- 是一种解决异步调用的解决方案
基础调用
- 声明Promise
let promiseFn=() => { return new Promise((resolve,reject) => { setTimeout(() => { let num=Math.floor(Math.random()*10+1) console.log(num,'num') num>Math.floor(Math.random()*10+1)/2? resolve('suc'):reject('err') },1000) }) }
- 可以在.then函数中传递两个回调函数,第一个接收resolve的值,第二个接收reject的值
promiseFn().then((res) => {console.log(res,'res')},(err) => {console.log(err,'err')})
- 链式调用
promiseFn().then((res) => {console.log(res,'res')}).catch((err) => {console.log(err,'err')})
- 当做独立函数调用
promiseFn().then((res) => {console.log(res,'res')}) promiseFn().catch((err) => {console.log(err,'err')})
promise的3种状态
- 定义:pending(加载) fulfilled(已完成 操作成功) rejected(已拒绝 操作失败)
let promiseFn=() => { return new Promise((resolve,reject) => { /* 加载状态 */ ... /* fulfilled状态 */ resolve() /* rejected状态 */ reject() }) }
注意:状态一旦确定,不能更改
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!