javascript - 如何将 Promises 与 if 结合起来?

标签 javascript promise

在下面的例子中,我想有条件地执行somePromise,然后不管条件如何执行anotherPromise

if (somecondition) {
    somePromise().then((args) => { ... } );
}

// Not waiting for somePromise() here, but it should.
return anotherPromise().then((args) => {
    muchmorecodehere;
}

我现在唯一能想到的办法就是把最后一部分变成一个函数,在两个分支中执行,但是这样看起来很麻烦。我肯定做错了什么?

let helperFunction = () => {
    return anotherPromise().then((args) => {
        muchmorecodehere;
    }
}

if (somecondition) {
    return somePromise().then((args) => { ... } ).then(helperFunction);
}

return helperFunction;

最佳答案

您可以利用 .then() 返回一个新的 promise 并链接该 promise 或一个虚拟 promise 这一事实:

var nextPromise = somecondition
    ? somePromise.then((args) => { ... })
    : Promise.resolve();

return nextPromise.then(() => anotherPromise)
    .then((args) => {
        // muchmorecodehere
    });

关于javascript - 如何将 Promises 与 if 结合起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41715148/

相关文章:

javascript - TinyMCE:验证每次击键的元素

javascript - html-/样式化-谷歌地图 api v3 中的工具提示

javascript - 如何在 AngularJs 中存储和读取 session (值)?

javascript - 如何在wordpress的Javascript函数中传递用户ID?

javascript - 为什么将Nightmarejs与async/await一起使用时,我的 promise 为何无法解决?

javascript - promise 与函数调用/setTimeOut

javascript - 将分配替换为延迟分配

javascript - 不使用 <any> 的 typescript 和解决 promise

javascript - 迭代 CSS 类数组和点击切换类

Angular Observable 需要先完成