Promise/A+_夏星966
Promise本意是承诺,在程序中的意思就是承诺我过一段时间后会给你一个结果.什么时候会用到过一段时间?答案是异步操作,异步是指可能比较长时间菜能有结果的才能,列如网络请求...
Promise本意是承诺,在程序中的意思就是承诺我过一段时间后会给你一个结果.什么时候会用到过一段时间?答案是异步操作,异步是指可能比较长时间菜能有结果的才能,列如网络请求、读取本地文件等
1.Promise的三种状态
?Pending---Promise对象实列创建时候的初始状态Fulfilled---可以理解为成功的状态Rejected---可以理解为失败的状态这个承诺一旦从等待状态变为其他状态就永远不能更改状态了,比如说一旦状态北纬resolved后,就不能再次改变为Fulfilled
let p = new Promise((resolve, reject) => {
reject('reject')
resolve('success')//无效代码不会执行
})
p.then(
value => {
console.log(value)
},
reason => {
console.log(reason)//reject
}
)
当我们在构造Promise的时候,构造函数内部的代码是立即执行的
new Promise((resolve, reject) => {
console.log('new Promise')
resolve('success')
})
console.log('end')
// new Promise => end
2.promise的链式调用
每次调用返回的都是一个新的Promise实列(这就是then可用链式调用的原因)如果then中返回的是一个结果的话会把这个结果传递下一次then中的成功回调如果then中出现异常,会走下一个then的失败回调在then中使用return,那么return的值会被Promise.resolve()包装then中可以不传递参数,如果不传递会透到下一个then中catch会捕获到没有捕获的异常相关文章
- 【Flutter】01:Flutter开发环境配置_miaocuilin_flutter 配置jdk
- pytorch---基础篇(常用函数)_hei_hei_hei__torch函数库
- 用vagrant在linux系统中编译运行本机的c++文件_nata-skate_在虚拟机上编译c++程序,显示
- ImportError:cannot import name ‘save_state_warning‘和解决torch1.7.1报分布式错误No rendezvous handler for env:
- Swift进阶 - 目录_HiccupTang_swift 进阶
- CS224N WINTER 2022(五)Transformers详解(附Assignment5答案)_囚生CY
- 解决报错“RuntimeError - [Xcodeproj] Unknown object version.”_培根芝士
- 使用KIF进行功能性iOS UI测试_泽众云测试_ios kif
- Vagrant设置私有网络_bin9wei_vagrant 网络
- 专业的开发工具:Xcode 13 for Mac_普通网友_mac的xcode
- Windows下使用vagrant搭建Fabric踩坑记录_powZn(tc)
- huggingface.datasets无法加载数据集和指标的解决方案_诸神缄默不语
- CVE-2018-3760漏洞复现_君陌上
- Bert模型做多标签文本分类_孤独腹地_bert 多标签分类
- adb安装_怒放的生命1991_adb 安装
- 可以跳过 Objective-C 然后直接学习 Swift 语言吗?_DIC专业信息提供者