在实际开发中常常有些业务的数据是来自多个接口的,因为ajax是异步,这样就导致我们需要判断是否请求到了数据然后在做其他的逻辑,在Promise没有出现之前,通常我们的解决方法是,第一粗暴的改异步为同步,但这样会造成阻塞,异步好像又失去了意义,第二也就是大家常用的解决办法用回调既一个异步执行完成后在执行下一个请求,这样看比第一种要好太多了,但是问题又来了,延迟延迟延迟,请求越多最后的那个请求延迟就会越严重,而且这样请求多了之后逻辑就会变得很乱。。。痛苦不堪,还好es6带来的Promise正好能解决这个东西,关于Promise具体详情请百度,这里大致只说三个东西,resolve, reject,Promise.all 对应成功执行,失败执行,返回全部状态,实例贴代码 很容易理解。
const promist = new Promise((resolve, reject) => {
this.$http.jsonp(getRegionNameByIdApi, {params: {regionId: dqarr}}).then((res) => {
this.dqarr = res.body.data
resolve(res.body.data)
}, (err) => {
console.log(err)
})
})
const promist1 = new Promise((resolve, reject) => {
this.$http.jsonp(getPartnerNameByIdApi, {params: {partnerId: sharr}}).then((res) => {
this.sharr = res.body.data
resolve(res.body.data)
}, (err) =>