promise 是用于解决异步编程,避免陷入回调地狱的一个类
基本使用
new Promise((resolve, reject) => { //调用resolve() 进入then处理 resolve() //调用reject() 进入catch处理 reject() }).then(() => { console.log(‘success‘) }).catch(() => { console.log(‘error‘) })
简化使用
new Promise((resolve, reject) => { let data = ‘aaa‘ console.log(‘数据请求‘); resolve(data) }).then((data) => { console.log(‘第一次处理数据‘ + data); return Promise.resolve(data + ‘111‘) //简化使用 同理 Promise.reject() 进入catch }).then((data) => { console.log(‘第二次数据处理‘ + data); return data + ‘222‘ //简洁使用 reject() 的简洁用法使用 throw 抛出异常,同样进入catch }).then(data => { console.log(‘第三次数据处理‘ + data); })
promise all 的使用
用户需要执行多个请求返回的数据全部收到后,进行后续操作
说明,all函数中传入的是数组
Promise.all([ new Promise((resolve, reject) => { setTimeOut(() => { resolve(‘data1‘) },1000) }), new Promise((resolve, reject) => { setTimeOut(() => { resolve(‘data2‘) },2000) }), ]).then(results => { console.log(results) })