调用有条件承诺的更好方法
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
我有一个场景,其中有“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