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);
在下面的代码块中,有人可以提供链接或简明警报语句语法的解释。
我理解前面被注释掉并包含消息参数的扩展等效代码。但是,我找不到省略消息参数的语法参考:
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);