TypeScript Promises不按顺序执行

时间:2017-02-08 01:21:02

标签: typescript es6-promise

我目前正在学习使用TypeScript的Promise,我希望有人可以帮助我理解为什么以下的承诺没有像我希望的那样按顺序执行,我已经尝试用Google搜索这些东西2天而没有运气,所以请随意分享一些想法,非常感谢。

step1()
.then(() => {
      return step2();
})
.then(() => {
      return step3();
});

function step1() : Promise<void>{
        return new Promise<void>(() => {
                setTimeout(() => {console.log("1");}, 1000);
        });
}

function step2() : Promise<void>{
        return new Promise<void>(() => {
                setTimeout(() => {console.log("2");}, 1000);
        });
}

function step3() : Promise<void>{
        return new Promise<void>(() => {
                setTimeout(() => {console.log("3");}, 1000);
        });
}

它在步骤1停止,并且没有其他任何函数被调用。

1 个答案:

答案 0 :(得分:1)

即使您的承诺无效,您仍然必须调用resolve函数来表明您已完成。

而不是

let imageView = UIImageView(image: UIImage(named: "Frameworks/MICountryPicker.framework/assets.bundle/sa"))

尝试

return new Promise<void>(() => {
        setTimeout(() => {console.log("1");}, 1000);
});

每个函数