我的同事在结构上写了这样的代码:
Promise.resolve(2).then(void console.log('3')).then(x => x + 2)
谁能解释一下为什么x
参数不是"未定义"的?在最后的then
语法
参数then(onFulfilled) then(onFulfilled, onRejected)
onFulfilled
(可选)
一个满足Promise
时异步调用的函数。这个函数只有一个参数,即执行值。如果它不是一个函数,它在内部被替换为一个恒等函数((x) => x
),它只是传递执行值。http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then
void
产生这样一个"not a function",特别是undefined
,因此onFulfilled
函数隐式地被x => x
取代。