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() 存在以来,您不会经常看到它,但它仍然是标准的一部分。