- 需求:代码逻辑需要axios调接口返回后根据具体值再做判断
- 一个流程需要调多个接口判断执行,axios不提供同步执行
// await后面的Promise可以改为需要调用的接口,通过接口的返回值赋值给resolveValue,最后返回Promise包裹的resolveValue
// 条件1
async function requestCondition1() {
let resolveValue = null
await new Promise((resolve, reject) => {
resolve(true)
}).then((res) => {
resolveValue = res
})
return new Promise((resolve, reject) => {
console.log('console 3')
resolve(resolveValue)
})
}
// 条件2
async function requestCondition2() {
let resolveValue = null
await new Promise((resolve, reject) => {
resolve(true)
}).then((res) => {
resolveValue = res
})
return new Promise((resolve, reject) => {
console.log('console 6')
resolve(resolveValue)
})
}
console.log('console 1')
// 执行逻辑判断
requestCondition1().then(res1 => {
// 已获取到res的值,执行requestCondition1之后的逻辑
console.log('console 4')
console.log('console 5', res1)
if (res1) {
// 满足条件1,执行下面的
requestCondition2().then(res2 => {
console.log('console 7')
// 满足条件2,执行下面的
if (res2) {
} else {
// 满足条件2,执行下面的
}
})
} else {
// 不满足条件1
}
})
console.log('console 2')