theme: fancy
highlight: atelier-forest-dark
小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
promise API
- 什么是API?
- 百度百科定义:API 应用程序接口是一些预先定义的接口(如函数、HTTP接口)
- 简约定义: 这里的API是指函数的方法
- 浅谈部分API? 分别有什么作用
```js /* 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的使用示例
js new Promise((resolve, reject)=>{ setTimeout(()=>{ // 两个函数只能运行一个 promise状态只能改变一次 resolve('成功') // reject('失败') },1000) }).then( //链式调用 调用函数onResolved value=>{ console.log('onResolved()',value) } ).catch( // 捕获错误 调用函数onRejected reason=>{ console.log('onRejected()',reason) } )
Promise 语法糖
```js // 产生一个成功值为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持续更新中。。。。