猿问

一道ES6的Promise笔试题的疑惑

console.log(1)

new Promise((resolve, reject) => {

  setTimeout(() => {

    // 标记flag

    resolve(false) 

  }, 0)

}).then(() => {

  console.log(2)

}, () => {

  console.log(3)

})

console.log(4)

此时代码输出是 1 4 2

标记flag处是resolve(false), 不应该输出是 1 4 3 吗?


守着一只汪
浏览 556回答 3
3回答

侃侃无极

then调用成功回调还是失败回调,是看调用的是resolve,还是reject,而不是看参数值不然为什么Promise(function(resolve, reject))要2个参数

慕桂英4014372

resolve(false)只是把false这个值传下去了呀,走的还是console.log(2)如果是reject()那就输出的是1 4 3
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答