ES6 箭头函数和 Promise Chaining 压缩语法解释

ES6 Arrow Functions and Promise Chaining condensed syntax explanation

在下面的代码块中,有人可以提供链接或简明警报语句语法的解释。

我理解前面被注释掉并包含消息参数的扩展等效代码。但是,我找不到省略消息参数的语法参考:

      let timeoutPromise = new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve('Success!');
        }, 2000);
      });

/*          timeoutPromise.then(message => {
                      alert(message);
                    }) 
*/        
       timeoutPromise.then(alert);

什么是message => { alert(message); }?这是一个接受一个参数的函数,调用时会弹出一个警告对话框。

现在,alert 是什么?这是一个接受一个参数的函数,调用时会弹出一个警告对话框。

foo => bar(foo) 包装器几乎总是多余的,相当于 bar.

当您调用 .then() 时,它希望您向它传递一个函数引用,当该函数被调用时,它会传递一个参数,即承诺的解析值。

一种方法是这样的:

 somePromise.then(result => {
     console.log(result);
 });

这里您传递给 .then() 的函数是一个内联的、匿名的箭头函数。

但是,您也可以创建一个常规的命名函数:

function showMyValue(result) {
    console.log(result);
}

然后传过去:

somePromise.then(showMyValue);

这是完全相同的签名。您正在传递一个函数引用,当调用该函数时,该函数需要一个参数。

好吧,alert() 也是一个函数,在调用时需要一个参数,因此您也可以这样做:

somePromise.then(alert);