ES6 Arrow Functions and Promise Chaining 简明语法解释

Gam*_*erz 0 javascript syntax chaining promise arrow-functions

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

我了解前面已注释掉并包含消息参数的扩展等效代码。但是,我找不到对省略 message 参数的语法的引用:

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

/*          timeoutPromise.then(message => {
                      alert(message);
                    }) 
*/        
       timeoutPromise.then(alert);
Run Code Online (Sandbox Code Playgroud)

jfr*_*d00 5

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

一种方法是这样的:

 somePromise.then(result => {
     console.log(result);
 });
Run Code Online (Sandbox Code Playgroud)

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

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

function showMyValue(result) {
    console.log(result);
}
Run Code Online (Sandbox Code Playgroud)

然后通过它:

somePromise.then(showMyValue);
Run Code Online (Sandbox Code Playgroud)

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

嗯,alert()也是一个函数,当被调用时,需要一个参数,所以你也可以这样做:

somePromise.then(alert);
Run Code Online (Sandbox Code Playgroud)