做网站教材,山东莱州市建设局网站,做ppt时网站怎么设计,wordpress视频居中Promise的含义 就是一个对象#xff0c;用来传递异步操作的消息。
基本用法 resolve,reject是javascript引擎提供的。 const promise new Promise(function(resolve, reject) {const result {success: truevalue: 777} //伪代码#xff0c;比如接口返回的参数if(result.su…Promise的含义 就是一个对象用来传递异步操作的消息。
基本用法 resolve,reject是javascript引擎提供的。 const promise new Promise(function(resolve, reject) {const result {success: truevalue: 777} //伪代码比如接口返回的参数if(result.success) {resolve(result.value) // 供外部函数继续使用}else {// 失败就调用这里reject(error) // 供外部函数继续使用}})特点: 1.对象的状态不受外界影响 有3种状态Pending进行中,Resolved已完成又称Fulfilled,Rejected已失败 2.一旦状态改变就不会再回来。 最终状态只能以下2种 Pending -Resolved Pending -Rejected
如果Promise状态已经变成Resolved再抛出错误是无效的。 const promise new Promise(function(resolve, reject) {resolve(ok)throw new Error(test)})promise.then(function(value) {console.log(value)}).catch(function(error) {console.log(error)})// ok 说明:最后只接收到Ok以上代码用es6的箭头函数再写一次 const promise new Promise((resolve, reject) {resolve(ok)throw new Error(test)})promise.then((value) {console.log(value)}).catch((error) {console.log(error)})注意**这样写能捕捉到错误**但是不是改变Promise的状态此时Promise的函数体已经运行结束所以这个错误实在Promise函数体体外抛出的 加了setTimeout就不一样了 const promise new Promise(function(resolve, reject) {resolve(ok)setTimeout(() {throw new Error(test)})})promise.then(function(value) {console.log(value)}).catch(function(error) {console.log(error)})// ok // Uncaught Error: test 说明下一篇介绍thencatch, Promise.all