首页 > 解决方案 > 如何在 A 之前记录 B?

问题描述

我有以下代码

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)

标签: javascriptpromise

解决方案


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

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

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

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

  })
}
a();


推荐阅读