如何在A之前记录B?

时间:2019-04-05 12:14:43

标签: javascript promise

我有以下代码

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

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

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

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

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

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

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