(bluebird .tap) 无法 return 数据,做错了

(bluebird .tap) Can't return data, do wrong

我愿意:

 return new bluebird((resolve) => {

  bluebird.resolve()
  .tap(saveExcelFiles)
  .tap(...)
  .tap(() => {
      return getZip().then((rows) => {
        resolve(rows) // this outer bluebird helps me
        return rows;
      });
    })
  ;
  
});

如何return所有数据(每次点击)或仅在一个蓝鸟包装中最后一次点击。

P.S。我需要排序(一个接一个,接一个接一个)

.tap 明确表示 "ignore the return value",如果您需要 return 值 - 使用标准 .then:

.then(() => {
  return getZip().then((rows) => {
    // Nothing outer.
    return rows;
  });
});

或更简洁:

.then(getZip); // that's it!

此外,您应该 return 承诺链而不是 explicit construction:

return saveExcelFiles().tap(...).then(getZip);

应该足以满足整个函数的要求。