在瀑布链接承诺

ddi*_*ase 5 node.js es6-promise

我一直在玩几种不同的链接功能集合的方式,似乎找不到我特别喜欢的方法.以下是我最后决定但仍然不热衷的事情.

有人可以提出更清洁,更简洁的模式吗?我不想选择Async.js或库.

[
  this.connectDatabase.bind(this),
  this.connectServer.bind(this),
  this.listen.bind(this)
].reduce(
  (chain, fn) => {
    let p = new Promise(fn);
    chain.then(p);
    return p;
  },
  Promise.resolve()
);
Run Code Online (Sandbox Code Playgroud)

PS.任何其他提示都受到欢迎.

Tia*_*oLr 7

在stackoverflow上找到了关于如何动态链接promise的解决方案:

iterable.reduce((p, fn) => p.then(fn), Promise.resolve())
Run Code Online (Sandbox Code Playgroud)

完整的帖子在这里:https://stackoverflow.com/a/30823708/4052701