Javascript中的双箭头函数是什么意思?
What does double arrow function mean in Javascript?
我有下面的代码,但我不明白双箭头符号,如果第一个的响应为真,第二个箭头功能是否有效?什么时候使用这个符号?
async check({ commit }) {
await axios.get('check')
.then((response) => {
console.log("try");
}, (response) => {
console.log("try2");
}
return true;
});
这与箭头函数无关。它与承诺的 then
方法有关。
对于 promise 的 then
方法,第一个参数是 fulfillment handler,第二个是 rejection handler。如果承诺得到履行,则第一个被调用并具有履行价值。如果承诺被拒绝,则调用第二个承诺并说明拒绝原因。只有一个或另一个(如果有的话)会被调用,永远不会同时被调用(为了同一个承诺)。
这是问题中部分显示的函数的略微编辑版本,更改了一些名称并删除了 return true;
(因为我不知道它应该在哪里):
async check({ commit }) {
await axios.get('check')
.then(
(value) => { // ***
// Use the fulfillment value // *** fulfillment handler
}, // ***
(reason) => { // ***
// Deal with the rejection // *** rejection handler
} // ***
);
});
参见 MDN or the Promises A+ specification JavaScript 的承诺。
可能值得注意的是,没有特别的理由让这个特定的函数成为一个async
函数,除非目标是专门隐藏承诺可能具有的任何实现价值(或者拒绝处理程序可能提供)。不过,它就是这样做的,所以也许这就是目的。
Promises/A+ standard says that then
可以有两个参数:
promise.then(onFulfilled, onRejected)
第二个是 onRejected
处理程序。
自从 catch()
存在以来,您不会经常看到它,但它仍然是标准的一部分。
我有下面的代码,但我不明白双箭头符号,如果第一个的响应为真,第二个箭头功能是否有效?什么时候使用这个符号?
async check({ commit }) {
await axios.get('check')
.then((response) => {
console.log("try");
}, (response) => {
console.log("try2");
}
return true;
});
这与箭头函数无关。它与承诺的 then
方法有关。
对于 promise 的 then
方法,第一个参数是 fulfillment handler,第二个是 rejection handler。如果承诺得到履行,则第一个被调用并具有履行价值。如果承诺被拒绝,则调用第二个承诺并说明拒绝原因。只有一个或另一个(如果有的话)会被调用,永远不会同时被调用(为了同一个承诺)。
这是问题中部分显示的函数的略微编辑版本,更改了一些名称并删除了 return true;
(因为我不知道它应该在哪里):
async check({ commit }) {
await axios.get('check')
.then(
(value) => { // ***
// Use the fulfillment value // *** fulfillment handler
}, // ***
(reason) => { // ***
// Deal with the rejection // *** rejection handler
} // ***
);
});
参见 MDN or the Promises A+ specification JavaScript 的承诺。
可能值得注意的是,没有特别的理由让这个特定的函数成为一个async
函数,除非目标是专门隐藏承诺可能具有的任何实现价值(或者拒绝处理程序可能提供)。不过,它就是这样做的,所以也许这就是目的。
Promises/A+ standard says that then
可以有两个参数:
promise.then(onFulfilled, onRejected)
第二个是 onRejected
处理程序。
自从 catch()
存在以来,您不会经常看到它,但它仍然是标准的一部分。