Promise
功能:支持链式调用,解决回调地狱问题
抽象表达:
Promise是一项新技术
Promise是JS异步编程的新解决方案,旧的解决方案是使用回调函数
具体表达:
从语法上来说:Promise是一个构造函数
从功能上来说,Promise对象用于封装异步操作并获取成功或失败的结果值。
fs文件模块、数据库操作、ajax、定时器
pending:初始状态,既不是成功状态也不是失败状态。fulmed:表示操作成功完成。rejected:表示操作失败。
一旦状态从待处理变为成功或失败,就无法再次更改。
newPromise创建一个实例//伪代码letp=newPromise((resolve,reject)={if(success){resolve('ok')}else{reject('err')}})
Promise实例有两种保存值的方法:resolve保存成功的值,reject保存失败的值,then方法,第一个回调函数value={}接收resolve保存成功的值,第二个回调函数reason={}接收错误信息或拒绝保存的值p.then(value={console.log(value)},reason={console.warn(reason)})
正常使用时,也可以省略第二个参数
p.then(value={console.log(value)})
catch方法,如果失败则进入该方法p.catch(err={console.log(err)})
finally方法,无论成功还是失败都可以进入该方法p.finally(err={console.log(err)})
包含n个promise的数组,(promises)={}返回一个新的promise,只有全部成功才成功,只要有一个失败,全部都会失败。
letp1=Promise.resolve('cccc')letp2=Promise.resolve('cccc2')Promise.all{[p1,p2]}
包含n个promises的数组={}返回一个新的promise,最终结果是第一个promise执行的结果
resolve()peding=fulfilled(resolved)reject()peding=rejectedthow'SomethinggoneError'
当promise改变到相应状态时会被调用
有可能。通常,先指定回调函数,然后再更改状态。不过,也可以先改变状态,然后再指定回调。如何先改变状态,然后指定回调?
A。直接在执行器中调用resolve()/reject()
b.在调用then()之前延迟更长的时间。什么时候能拿到数据?
如果先指定回调,那么当状态发生变化时,就会调用回调函数并获取数据。
如果先改变状态,那么当指定回调时,会调用回调函数,获取数据
。then()指定的回调函数的执行结果决定是否解除错误。如果结果不是Promise对象,则失败返回结果。如果该对象是Promise对象,则成功返回该对象。失败/成功
然后返回一个新的承诺
捕获
返回处于填充状态的Promise对象
返回新的Promise(()={})
大家好,今天小编关注到一个比较有意思的话题,就是关于培训机构的信任状的问题,于是小编就整理了1个相关介绍培训机构的信任状的解答,让我们一起看看吧。你在职场上遇到…
大家好,今天小编关注到一个比较有意思的话题,就是关于哪个机构培训cisp好的问题,于是小编就整理了1个相关介绍哪个机构培训cisp好的解答,让我们一起看看吧。c…
大家好,今天小编关注到一个比较有意思的话题,就是关于以色列印度培训机构的问题,于是小编就整理了4个相关介绍以色列印度培训机构的解答,让我们一起看看吧。亚训有哪些…
大家好,今天小编关注到一个比较有意思的话题,就是关于cisp培训机构名单上海的问题,于是小编就整理了1个相关介绍cisp培训机构名单上海的解答,让我们一起看看吧…
vue3+vite+typescript不提供名为xxx的导出解决方案vue3+vite+typescript不提供名为xxx的导出解决方案。使用TinyMCE…
2024-10-23 16:42:08
2024-10-23 15:00:05
2024-10-23 10:48:05
2024-10-23 08:48:12
2024-10-23 06:36:10
大家好,今天小编关注到一个比较有意思的话题,就是关于邯郸电脑培训班短期成人的问题…
大家好,今天小编关注到一个比较有意思的话题,就是关于教对门舅媽学电脑电脑的问题,…