在承诺链上返回空箭头函数

Returning empty arrow function on promise chain

我试图理解这里的一段代码,我认为这是多余的代码,可以删除,但也许我错了,这是代码:

return(
    myModule.getSomething(args.url)
    .then(stream => module.uploadData({
      param1: args.param1,
      param2: args.param2,
      param3: stream,
    }))
    .then(() => myBroker.dispatch({
        queueUrl: myQueueUrl,
        payload: JSON.stringify(args.payload),
      })
    )
    .then(msgInfo => {}) .  //This line can be removed right?
    .catch(error => {
      myBroker.dispatch({
        queueUrl: anotherQueueUrl,
        payload: JSON.stringify({ type: 'error', payload: `[ERROR] ${error}` }),
      });

      throw error;
    })
  );

我相信行:

.then(msgInfo => {})

可以删了吧?箭头函数什么都不做,msgInfo 是调用 myBroker.dispatch 之后的前一个 then 子句 returns 的东西,因此,我可以删除我提到的行吗?

有人可以给我一个明确的解释吗? 为什么那条线存在?或者解释一下为什么我不能删除它?

PS:函数 getSomething 和 uploadData return 是一个承诺,调度函数我不太确定,因为它看起来像这样:

return(
    client.sendMessage(parameters).promise()
    .then(data => data)
  );

它 return 只是一个对象 'data' 对吗?或者它 return 也是一个承诺,因为它最后包含 then 子句?

这种使用多个 'then' 和箭头函数的语法符号让我很困惑,

非常感谢!

我能想到为什么该行会存在的唯一原因是,如果正在使用整个块的函数位于某个地方,那么 myBroker.dispatch 的解析值不应该(或更好) not) 暴露给更大功能的消费者。例如:

const thisModule = (() => {
  const myBroker = ...;
  function getSomethingAndDispatchBroker() {
    return(
      myModule.getSomething(args.url)
      .then(stream => module.uploadData({
        param1: args.param1,
        param2: args.param2,
        param3: stream,
      }))
      .then(() => myBroker.dispatch({
        queueUrl: myQueueUrl,
        payload: JSON.stringify(args.payload),
      }))
      .then(msgInfo => {})
      .catch(error => {
        myBroker.dispatch({
          queueUrl: anotherQueueUrl,
          payload: JSON.stringify({ type: 'error', payload: `[ERROR] ${error}` }),
        });
        throw error;
      })
    );
  }
  return { getSomethingAndDispatchBroker };
})();

在这里,函数 getSomethingAndDispatchBroker 可以从外部调用,但也许 myBroker.dispatch 的解析值最好保留在 thisModule 内部 - 出于隐私考虑,或者由于为了代码清晰 - 也许您只希望函数的用户知道 Promise 是否已解决(如果过程成功),而不告诉他们不必要的细节。

不过,如果 none 是一个问题,那么是的,请随时删除 .then(msgInfo => {}) 行。