result-6ren">
gpt4 book ai didi

javascript - 如何等待两个异步函数结束?

转载 作者:行者123 更新时间:2023-12-02 21:09:42 26 4
gpt4 key购买 nike

我在 if-else 语句中有 2 个 Promise 函数。

if(file_type == "pdf"){
// Some Promise
.then(data =>
result = data;
)
}
else{
// Other Promise
.then(data =>
result = data
)
}
// Do something with the data

我想要的是,最后一个同步部分不应在执行 Promise 之前发生,但我不想在 Promise 的两个 then block 中重复同步代码。有没有办法做到这一点?

我尝试的是

async() => { if(file_type == "pdf"){
await // Some Promise
.then(data =>
result = data;
)
}
else{
await // Other Promise
.then(data =>
result = data
)
}
}
// Do something with the result

但是这个方法并没有奏效。它立即跳过了异步部分。

抱歉,如果这是一个非常愚蠢的问题。我在 YouTube 和 StackOverflow 上搜索过它,但都是徒劳。 感谢您的帮助

最佳答案

使用条件运算符引用 Some PromiseOther Promise,然后对该 Promise 调用 .then:

const prom = file_type == 'pdf' ? somePromise : otherPromise;
prom.then((data) => {
// Do something with the data
});

确保将所有依赖于异步信息的功能放入 .then 回调内部,而不是外部。不要分配给外部变量。

您还可以将其放入命名函数中:

const processData = (data) => {
// Do something with the data
};
const prom = file_type == 'pdf' ? somePromise : otherPromise;
prom.then(processData);

关于javascript - 如何等待两个异步函数结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61131047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com