链接.then()调用ES6承诺

dav*_*ith 2 javascript es6-promise

我认为在使用ES6 Promises时应该可以链接.then()方法.换句话说,我认为当一个承诺解决传递给函数解析值应该传递给任何链接,然后处理程序.如果是这样的话怎么来的来在后面不确定的链接,然后下面的处理程序?

function createPromise() {
  return new Promise((resolve) => {
    resolve(true);
  });
}

createPromise()
  .then((value) => {
    console.log(value); // expected: true, actual: true
  })
  .then((value) => {
    console.log(value); // expected: true, actual: undefined
  });
Run Code Online (Sandbox Code Playgroud)

Sci*_*ter 8

每个都then()可以返回一个值,该值将用作下一次then()调用的已解析值.在你的第一个then(),你不返回任何东西,因此value在下一个回调中未定义.返回value第一个,使其在第二个可用.

function createPromise() {
  return new Promise((resolve) => {
    resolve(true);
  });
}

createPromise()
  .then((value) => {
    console.log(value); // expected: true, actual: true
    return value;
  })
  .then((value) => {
    console.log(value); // expected: true, actual: true
  });
Run Code Online (Sandbox Code Playgroud)