-1

我有以下代码

function a() {
  b().then((success) => {
    if (success) {
      console.log('B')
    }
  })
}

function b() {
  return new Promise((resolve, reject) => {
    resolve(true)
    console.log('A')
  })
}
a();

如何在不使用B之前登录AsetTimeout(()=>{console.log('A')}, 0)

4

2 回答 2

2

您可以在第一个 Promise 中将函数作为值传递,稍后将执行该值。

function a() {
  b().then((success) => {
    if (success) {

      console.log('B')
      success()
    }
  })
}

function b() {
  return new Promise((resolve, reject) => {
    resolve(() => console.log('A'))

  })
}
a();

于 2019-04-05T12:22:48.687 回答
1

我不确定这是否正是您想要的,但这就是我想出的。

async function a() {
  await b().then((success) => {
    if (success) {
      console.log('B')
    }
  })
}

function b() {
  return new Promise((resolve, reject) => {
    resolve(true)
    console.log('A')
  })
}
于 2019-04-05T12:24:05.880 回答