js实例教程-javaScript中的Promise对象语法、常用方法实例讲解

发布时间:2018-11-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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,请注明来意。