Promise 对象用于表示一个异步操作的最终完成 (或失败), 及其结果值.
做什么?
---Promise是异步编程的一种解决方案
vue项目中常见的异步事件之一就是网络请求,调用api做网络请求,由于api是一个异步的操作,不能使用return来将数据返回,此时我们需要传入另外一个函数,在数据请求成功是,将数据通过传入的函数回调出去,但是当网络请求非常复杂时会出现回调地狱。Promise可以解决这种局面。
- 首先创建文件封装一个网络请求函数,导出
// 终极方案
export function request(config) {
// 1)创建axios的实例
const baseURL='/api'
const instance=axios.create({
baseURL:baseURL,
timeOut:5000,
})
return instance(config)//返回一个promise,通过.then拿到结果
}
- 创建一个文件,导入网络请求函数,传参,调用
request(config)
.then(res=>{
//依赖于第一次请求回来的数据,拿到第二次的url去做第二次请求
//取出res中的url地址
retturn request({url,...})
})
.then(res=>{
//通过这种链式调用拿到第三次请求的数据
//解决了回调地狱
})