Promise
Promise
es6中引入的异步编程解决方案,语法上Promise是个构造函数
const p = new Promise((resolve,reject)=>{
// resolve 解决(成功)
// reject 拒绝(失败)
})
then
promise对象 都有then方法
resolve(参数) 触发then( )方法中的 第一个回调函数
reject(参数) 触发then( )方法中的 第二个回调函数
p.then(function(value){
// value是resolve传递过来的参数
},function(reason){
// reason是reject传递过来的参数
})
then返回值
p.then( ) 返回一个promise对象
const p = new Promise((resolve,reject)=>{
// resolve 解决(成功)
// reject 拒绝(失败)
})
const result = p.then(value => {
// 第一个回调
},reason => {
// 第二个回调
})
/*
result -> {
PromiseState:状态 fulfilled(成功) rejected(失败)
PromiseResult:结果
}
*/
如果p的状态为成功,则调用then方法中第一个回调函数。
如果p的状态为失败,则调用then方法中第二个回调函数。
p.then()返回的promise状态由回调函数 (value/reason) 执行结果决定:
1. 没有return 默认 return undefined
状态: fulfilled ----- 结果: undefined
2. return '123' (非promise类型数据)
状态: fulfilled ----- 结果: '123'
3. return new Promise( ) (promise类型数据)
如果promise对象 resolve(参数) --> 状态: fulfilled ----- 结果: 参数
如果promise对象 reject(参数) --> 状态: rejected ----- 结果: 参数
4. throw 抛 错
状态: rejected ----- 结果: 抛出内容
链式调用
由于then( )方法返回一个promise对象,而promise对象都有then( )方法,所以可以 链式调用
p.then(value=>{
},reason=>{
}).then(value=>{
},reason=>{
})
catch
p.catch(reason=>{
// 只有一个回调函数
})
捕获失败的promise 也就是 状态为rejected的promise对象
p.then( )有两个回调函数 成功 和 失败
p.catch( )只有一个回调函数 失败
本文来自博客园,作者:ycccc丶,转载请注明原文链接:https://www.cnblogs.com/imycc/p/16484490.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)