有人可以解释这段代码是如何工作的吗?

Can someone explain how this code even works?

我正在阅读这个函数,但完全不明白它是如何工作的。

() => console.log(i) || Promise.resolve(i++ > 3)

哪位好心人能解释一下console.log如何参与有条件的吗?

我什至可以用打字稿转译它。

console.log(...) returns undefined, which evaluates to a falsy value.

console.log(...) returns undefined,这是假的;所以 or || 运算符之后的表达式将始终执行。这只是 shorthand 用于:

() => {
  console.log(i);
  return Promise.resolve(i++ > 3);
}