我试图了解es6的承诺。据我了解,它们可以被链接在一起执行。它不起作用。ES6中的顺序承诺JavaScript无法正常工作
console.log("Started");
function doStuff(num, timeout) {
return new Promise(function(resolve, reject) {
setTimeout(function() {
console.log("now " + num);
resolve();
}, timeout);
});
}
doStuff(1, 3000).then(doStuff(2, 2000)).then(doStuff(3, 1000));
然而输出为:
$ node test
Started
now 3
now 2
now 1
我期待相反的顺序。我明白为什么会这样,他们都排队等候并以“反向”顺序结束。
但事情是,我认为第二个没有执行,直到第一个完成,等等。我错过了什么?
您必须将函数传递给'.then',而不是承诺。 –