promise的使用

316 阅读1分钟

一、promise是啥 promise是es6引入的异步编程的解决方案,语法上promise是一个构造函数,用于封装异步操作并可以获取成功和失败的结果。 例如:

const p = new Promise(function(resolve,reject){
  setTimeout(function(){
   const data = 'promise';
   // 成功使用resove
   resolve(data)
   // 失败就使用reject
   reject(data)
  },1000)
})
// 调用这个方法
p.then(
// 成功的回调
function(val){
},
//失败的回调
function(data){

}
)

promise有三个状态 等待:pendding 成功:resolve 失败:reject 当状态为成功或者失败后,状态就无法变更了.当成功时会调用resove,失败时会调用reject,promise用于解决异步回调地狱是非常使用的,避免代码一直嵌套,利于维护。

二、promise的all用法介绍 promise.all(['xxx','yyy']).then(res=>{ }) all的参数是一个数组,里面的参数都是promise方法,当所有的promise方法都执行完毕才会执行then方法进行回调,这个可以用于有关联性的异步方法,很实用。

三、promise的race用法介绍 promise.race(['xxx','yyy']).then(res =>{ }) race与all的不同之处在于当里面的promise方法有一个先执行完毕,那么就会立马执行then回调,其他promise不再进行raced回调了,跟||或的用法类似,当一个为真时就为真,但是它们依然会继续执行自身的回调。

四、学习时间 2021.06.16 下午

五、总结

promise 在使用异步请求的时候非常有用,利于我们梳理逻辑以及更好地为何项目代码,不至于套娃一样嵌套异步请求方法。