总结:其外围原理在于如果 return回一个新的Promise,下一个then解决的是这个Promise,会期待这个Promise产生扭转。

    (function queue(args) {      args.reduce((promise, cul) => {        return promise.then((_) => {          return new Promise((resolve) => {            setTimeout(() => {              console.log(cul);              resolve();            }, 1000);          });        });      }, Promise.resolve());    })([1, 2, 3, 4, 5, 6]);