我需要顺序执行一堆'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)
代码运行正常并且正在"同步"处理......你只是在调用函数时遇到错误:
第一个setTime("0")"回归""bar0"
然后你调用setTime("1" + "bar0")哪个"返回""bar" + "1bar0"
您的新字符串将被添加到前缀中.