CNode

看看有多少人中枪,你能说出这段程序执行是怎样的吗?

问答
MMiYogurt发布于8 年前最后回复8 年前2 回复3030 浏览0 收藏
let count = 1
let wait = new Promise(resolve => {
  setTimeout(() => {
    resolve(count++)
  }, 1000)
})

const fn = () => {
  return wait.then(console.log)
}
fn()
  .then(fn)
  .then(fn)

提示一下:wait 不是一个工厂函数哟。

查看回复

回复 (2)

L
lovegnep#1·8 年前

第一感觉,依次打印 1 2 3


跑下程序

1
1
1

呐呢 what??

原来如此:

wait是一个promise,在调用fn的时候其实它已经是resolve状态了。所以每次调用fn的时候resolve的值都是1

S
shynome#2·8 年前

我这个人比较笨,只能跑下才能知道答案,反正前端一下就跑出结果了 4 4 4 xxxx wait 居然是个 promise ,漏掉了提示,粗心吶

参与回复
登录后即可参与回复。登录