"observe" 承诺的正确方法并知道它何时结算

proper way to "observe" a promise and know when it's settled

我正在使用蓝鸟。如果我有一些 return 是一个承诺的功能,然后我只想 return 它给调用者,但我也想 "observe" 并知道什么时候履行承诺来做一个某些动作是 reflect() 合适的选择?我不希望以任何方式破坏对调用者的承诺,调用者仍然可以调用任何/所有 then()catch()error()finally(), 甚至 reflect(), 等等...基本上我希望在调用者和函数之间有一个中间件, 但不会为调用者弄乱任何东西。

function asyncFoo() {
  const p = asyncAction();
  p.reflect().then(inspection => {
    console.log('promise p fulfilled %s', inspection.isFulfilled());
  });
  return p;
}

谢谢

then 是最小规格,可以正常工作...

function asyncFoo() {
  const p = asyncAction();
  p.then(result => {
    console.log('promise p fulfilled with ${result}');
    result;
  });
  return p;
}

返回的 promise 可以像从 asynchAction 返回的 promise 一样对待。它可以在其上调用 thencatch 等,并且它将使用该异步结果进行解析。