调用有条件承诺的更好方法

Better way to call conditionally promises

我有一个场景,其中有“Promise A”和“Promise B”。只有当变量“value”为 false 时,我才需要调用这两个 promise,否则,我只需要调用 Promise B。

所以,我写了这段代码:

if(!value){
            PromiseA.then((newValue)=>{
                PromiseB.then((newValue)=>{
                    //...
                })
            })
        }
        else{
            PromiseB.then((value)=>{
                //....
            })
        }

此代码工作正常,但我想知道是否有比使用“if-else”更好的方法来完成此操作。

这是为了有干净的代码。

提前致谢。

如果你想避免代码重复,你可以将第二个承诺包装在一个函数中。

function callPromiseB() {
   PromiseB.then((value)=>{
      //....
   })
}

        if(!value){
            PromiseA.then((newValue)=>{
                callPromiseB()
            })
        }
        else{
            callPromiseB()
        }

在异步函数中,await 如果需要,第一个 Promise。

const firstValue = value ?? await PromiseA;
const resultOfPromiseB = await PromiseB;
// do stuff with resultOfPromiseB