小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
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持续更新中。。。。