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