初识promise(二)promise基本使用

313 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

promise API

  • 什么是API?
    • 百度百科定义:API 应用程序接口是一些预先定义的接口(如函数、HTTP接口)
    • 简约定义: 这里的API是指函数的方法
  • 浅谈部分API? 分别有什么作用
/*  Promise构造函数: Promise(excutor) {}
      excutor函数: 同步执行 (resolve, reject)=>{}
      resolve函数: 成功时调用的函数 value=>{}
      rejected函数: 失败时调用的函数 reason=>{}
      注: excutor会在promise内部立即同步回调,异步操作在执行器中执行
      
    Promise.prototype.then方法: (onResolved,onRejected)=>{}
       onResolved函数: 成功的回调函数 (value)=>{}
       onRejected函数:  失败的回调函数 (reason)=>{}
       注:用于得到成功value的成功回调或者失败reason的失败回调
       返回一定是一个新promise对象
      
    Promise.prototype.catch方法: (onRejected)=>{}
       onRejected函数:失败的回调函数 (reason)=>{}
       注: then()的语法糖 相当于then(undefined, onRejected)
      
    Promise.resolve方法: (value)=>{}
        value: 成功的数据或promise对象
        注: 返回成功或失败的promise对象
        
    Promise.reject方法: (reason)=>{}
        reason: 失败的原因
        注: 返回一个失败的promise对象
        
    Promise.all方法: (promises)=>{}
        promises: 包含n个promise的数组
        注: 返回一个新的promise,只有所有promise都成功才成功,否则失败
        
    Promise.race方法: (promises)=>{}
        promises: 包含n个promise的数组
        注:返回一个promise,第一个完成的promise结果就是最终的结果状态
*/

API的使用示例

new Promise((resolve, reject)=>{
    setTimeout(()=>{
        // 两个函数只能运行一个 promise状态只能改变一次
        resolve('成功')
        // reject('失败')
    },1000)
}).then(
    //链式调用 调用函数onResolved
    value=>{
        console.log('onResolved()',value)
    }
).catch(
    // 捕获错误 调用函数onRejected
    reason=>{
    console.log('onRejected()',reason)
    }
)

Promise 语法糖

 // 产生一个成功值为1的promise对象 初始写法
 const p1 = new Promise((resolve,reject)=>{
     resolve(1)
 })
 p1.then(value=>{console.log(value)})
 
 // 语法糖写法
 const p2 = Promise.resolve(1)
 p2.then(value=>{console.log(value)})
 
 // 产生一个是失败值为1的promise对象
 const p3 = Promise.reject(1)
 // 失败时有两种获取值的方法
 p3.then((null,reason)=>{console.log(reason)})
 p3.catch(reason=>{console.log(reason)})

总结

  • 今日枯燥知识点较多,需要慢慢消化,剩下的API下期再更
  • 可关注专栏 promise持续更新中。。。。