Promise(一)

什么是Promise?

  1. 是一种解决异步调用的解决方案

基础调用

  1. 声明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)
        })
      }
  2. 可以在.then函数中传递两个回调函数,第一个接收resolve的值,第二个接收reject的值
    promiseFn().then((res) => {console.log(res,'res')},(err) => {console.log(err,'err')})
  1. 链式调用
    promiseFn().then((res) => {console.log(res,'res')}).catch((err) => {console.log(err,'err')})
  1. 当做独立函数调用
    promiseFn().then((res) => {console.log(res,'res')})
    promiseFn().catch((err) => {console.log(err,'err')})

promise的3种状态

  1. 定义:pending(加载) fulfilled(已完成 操作成功) rejected(已拒绝 操作失败)
    let promiseFn=() => {
       return new Promise((resolve,reject) => {
           /* 加载状态 */
               ...
    
           /* fulfilled状态 */
               resolve()
    
           /* rejected状态 */
               reject()
        })
     }

    注意:状态一旦确定,不能更改


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!