脚本宝典收集整理的这篇文章主要介绍了js实例教程-javaScript中的Promise对象语法、常用方法实例讲解,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。
Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及其返回的值。
语法:
new Promise( function(resolve, reject) {...} /* executor */ );
参数:
resolve和reject两个函数作为参数,这两个函数是Promise自带的不用我们再定义
常用方法:
PRomise.reject(reason) :
返回一个状态为失败的Promise对象,并将给定的失败信息传递给对应的处理方法
Promise.resolve(value):
返回一个状态由给定value决定的Promise对象。如果该值是一个Promise对象,则直接返回该对象;如果该值是thenable(即,带有then方法的对象),返回的Promise对象的最终状态由then方法执行决定;否则的话(该value为空,基本类型或者不带then方法的对象),返回的Promise对象状态为fulfilled,并且将该value传递给对应的then方法。通常而言,如果你不知道一个值是否是Promise对象,使用Promise.resolve(value)来返回一个Promise对象,这样就能将该value以Promise对象形式使用。
Promise.prototyPE.catch(onRejected):
添加一个拒绝(rejection) 回调到当前 promise, 返回一个新的promise。当这个回调函数被调用,新 promise 将以它的返回值来resolve,否则如果当前promise 进入fulfilled状态,则以当前promise的完成结果作为新promise的完成结果.
Promise.prototype.then(onFulfilled, onRejected):
添加解决(fulfillment)和拒绝(rejection)回调到当前 promise, 返回一个新的 promise, 将以回调的返回值来resolve.
注意:
1、Promise构造函数执行时立即调用executor 函数
2、当我们调用reject: promise的状态自动变为rejected(失败)
3、当我们调用resolve: promise的状态自动变为fulfilled(完成)
Promise的状态:
1、pending: 初始状态,既不是成功,也不是失败状态。
2、fulfilled: 意味着操作成功完成。
3、rejected: 意味着操作失败。
Promise工作流程:
1、创建Promise(pending状态)
VAR pro = new Promise((resolve,reject) => { /.....异步操作,比如XMlhttpReauest fetch 这样的ajax操作/ })
2、一般我们会在executor函数内部执行我们的异步操作,一旦完成,可以调用resolve()或者rejected()函数并传递相应成功或者失败的数据信息。
3、Promise对象的then方法被调用,then根据前面是调用的是resolve还是rejected来决定调用then方法中的onfulfilled(成功)或者onrejected(失败)注意这两个是我们自己定义好的方法
4、Promise中即使前面有catch,仍然可以继续使用.then或者.catch继续链式调用
例子:
function myAsynCFunction (url) { return new Promise((resolve, reject) => { // return一个Promise const xhr = new XMLHttpRequest() xhr.open('GET', url) xhr.onload = () => resolve(xhr.responseText) // 成功调用 xhr.onerror = () => reject(xhr.statusText) // 失败调用 xhr.send() }) } myAsyncFunction(url).then(successResponse => {}, failedResponse => {})
容易混淆的地方:
1、Promise是我们new出来的第一个,promise是后面我们调用resolve或者reject时返回的
2、Promise 不论成功或失败都会调用 then
3、catch() 只有当 promise 失败时才会调用 注意catch(failureCallback) 是 then(null, failureCallback) 的缩略形式
.then里的方法是异步调用的:
例子:
new Promise((resolve, reject) => { console.LOG('start') resolve("step1") }).then((result) => { console.log(result) }) console.log('=========')
结果是:
start
=========
step1
Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及其返回的值。
语法:
new Promise( function(resolve, reject) {...} /* executor */ );
参数:
resolve和reject两个函数作为参数,这两个函数是Promise自带的不用我们再定义
常用方法:
Promise.reject(reason) :
返回一个状态为失败的Promise对象,并将给定的失败信息传递给对应的处理方法
Promise.resolve(value):
返回一个状态由给定value决定的Promise对象。如果该值是一个Promise对象,则直接返回该对象;如果该值是thenable(即,带有then方法的对象),返回的Promise对象的最终状态由then方法执行决定;否则的话(该value为空,基本类型或者不带then方法的对象),返回的Promise对象状态为fulfilled,并且将该value传递给对应的then方法。通常而言,如果你不知道一个值是否是Promise对象,使用Promise.resolve(value)来返回一个Promise对象,这样就能将该value以Promise对象形式使用。
Promise.prototype.catch(onRejected):
添加一个拒绝(rejection) 回调到当前 promise, 返回一个新的promise。当这个回调函数被调用,新 promise 将以它的返回值来resolve,否则如果当前promise 进入fulfilled状态,则以当前promise的完成结果作为新promise的完成结果.
Promise.prototype.then(onFulfilled, onRejected):
添加解决(fulfillment)和拒绝(rejection)回调到当前 promise, 返回一个新的 promise, 将以回调的返回值来resolve.
注意:
1、Promise构造函数执行时立即调用executor 函数
2、当我们调用reject: promise的状态自动变为rejected(失败)
3、当我们调用resolve: promise的状态自动变为fulfilled(完成)
Promise的状态:
1、pending: 初始状态,既不是成功,也不是失败状态。
2、fulfilled: 意味着操作成功完成。
3、rejected: 意味着操作失败。
Promise工作流程:
1、创建Promise(pending状态)
var pro = new Promise((resolve,reject) => { /.....异步操作,比如xmlhttpReauest fetch 这样的ajax操作/ })
2、一般我们会在executor函数内部执行我们的异步操作,一旦完成,可以调用resolve()或者rejected()函数并传递相应成功或者失败的数据信息。
3、Promise对象的then方法被调用,then根据前面是调用的是resolve还是rejected来决定调用then方法中的onfulfilled(成功)或者onrejected(失败)注意这两个是我们自己定义好的方法
4、Promise中即使前面有catch,仍然可以继续使用.then或者.catch继续链式调用
例子:
function myAsyncFunction (url) { return new Promise((resolve, reject) => { // return一个Promise const xhr = new XMLHttpRequest() xhr.open('GET', url) xhr.onload = () => resolve(xhr.responseText) // 成功调用 xhr.onerror = () => reject(xhr.statusText) // 失败调用 xhr.send() }) } myAsyncFunction(url).then(successResponse => {}, failedResponse => {})
容易混淆的地方:
1、Promise是我们new出来的第一个,promise是后面我们调用resolve或者reject时返回的
2、Promise 不论成功或失败都会调用 then
3、catch() 只有当 promise 失败时才会调用 注意catch(failureCallback) 是 then(null, failureCallback) 的缩略形式
.then里的方法是异步调用的:
例子:
new Promise((resolve, reject) => { console.log('start') resolve("step1") }).then((result) => { console.log(result) }) console.log('=========')
结果是:
start
=========
step1
觉得可用,就经常来吧!Javascript技巧 脚本宝典 欢迎评论哦! js技巧,巧夺天工,精雕玉琢。小宝典献丑了!
以上是脚本宝典为你收集整理的js实例教程-javaScript中的Promise对象语法、常用方法实例讲解全部内容,希望文章能够帮你解决js实例教程-javaScript中的Promise对象语法、常用方法实例讲解所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。