链接一系列的承诺

alf*_*ino 1 javascript

我需要顺序执行一堆'promisified'函数(我的意思是同步,因为每一个都需要前一个的结果).此代码打印bar1bar0时,我期望bar0bar1.

function _setTime(str) {
    return new Promise(function(resolve, reject) {
      setTimeout(function() {
        resolve(`bar${str} `);
      }, 1);
    });
}
_setTime("0")
    .then(function(str) {
        return _setTime("1"+str)
  })
  .then(function(str) {
        console.log(str)
  })
Run Code Online (Sandbox Code Playgroud)

JDB*_*JDB 5

代码运行正常并且正在"同步"处理......你只是在调用函数时遇到错误:

第一个setTime("0")"回归""bar0"

然后你调用setTime("1" + "bar0")哪个"返回""bar" + "1bar0"

您的新字符串将被添加到前缀中.