双箭头功能在Javascript中是什么意思?

问题描述

我有下面的代码,但我不理解双箭头符号,如果第一个箭头的响应为true,第二个箭头功能是否可以工作?什么时候使用此符号?

  async check({ commit }) {
     await axios.get('check')
     .then((response) => {
      console.log("try");
     },(response) => {
      console.log("try2");
     }

     return true;
     });

解决方法

这与箭头功能无关。它与承诺上的then方法有关。

使用promise的then方法,第一个参数是实现处理程序,第二个参数是拒绝处理程序。如果兑现了承诺,则第一个将以实现值进行调用。如果承诺被拒绝,则第二个带有拒绝原因的调用。只会调用一个(另一个)(如果有一个),而不会同时调用两个(出于相同的承诺)。

下面是在qusetion中部分显示的功能的略作编辑的版本,其中一些名称已更改,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或JavaScript的承诺所基于的Promises A+ specification


可能值得注意的是,没有特殊的理由将此特定功能设为async函数,除非目标是专门隐藏承诺(或拒绝处理程序)可能实现的任何履行价值可以供应)。但是,这样做是为了达到目的。

,

Promises/A+ standardthen可以接受两个参数:

promise.then(onFulfilled,onRejected)

第二个是onRejected处理程序。

由于catch()存在,因此您很少看到这种情况,但这仍然是标准的一部分。