首页 > 解决方案 > 通过 promise 或 async await 控制嵌套 if-else 的顺序

问题描述

我一直在努力使用嵌套的 if-else,我想运行所有条件而不返回,这是我的代码:

openMainModal: boolean;
openSecondaryModal: boolean;

mainFunction(isOpen : boolean) {
    isOpen ? this.openSecondaryModal = true : this.openMainModal = true;
    this.OpenModal():
}
OpenModal() {
    call to angular service...
    if (condition one = true) {
        do some logics....
    } else {
        if (!this.openSecondaryModal) {
            do some logics....
        }
    }
    if (condition two) {
        do some logics....
    } else {
        if (!this.openMainModal) {
            do some logics....
        }
    }
    this.openMainModal = false;
    this.openSecondaryModal = false:
}

问题是 openMainModal 和 openSecondaryModal 都具有 true 的值,但不知何故,当我在控制台日志中它得到 false 尽管它是真的,你建议使用什么来控制运行代码的顺序?在这种情况下可以使用 async-await 或 promise 吗?也作为一般指导,您如何建议简化此代码,因为我希望 openModal 的整个函数在其所有条件下运行而不返回任何满足的条件?

标签: javascriptasync-awaites6-promiseangular-promise

解决方案


推荐阅读