gpt4 book ai didi

javascript - 将 promise 一一链接起来,直到返回不为空的结果

转载 作者:行者123 更新时间:2023-11-28 11:44:38 28 4
gpt4 key购买 nike

我对 promise 有一个特定的问题 - 我没有找到任何解决方案来解决我的问题。

例如,我有服务(类)列表

const services = [
FirstCacheDataProvider,
SecondCacheDataProvider,
// etc, there can be more services, unspecified number of services
];

每个类都实现返回 Promise 的方法(例如 find)(它在该方法内解析,我无权访问该方法的主体。这显然是异步的)

现在我想一一调用这个方法,直到返回NOT EMPTY结果。

有没有办法在没有大链的情况下做到这一点?

工作流程示例:

我们有4项服务

FirstCacheDataProvider.find() // result of promise is empty
SecondCacheDataProvider.find() // result of promise is empty
ThirdCacheDataProvider.find() // result of promise IS NOT EMPTY
// fourth service's method is not called

最佳答案

一个简单的方法是使用 for 循环并在 async 函数中await每个服务调用:

for (let i = 0; i < services.length; i++) {
const result = await services[i].find();
if (result === 'NOT EMPTY') { // or whatever condition you're searching for.. .length?
break;
}
}

关于javascript - 将 promise 一一链接起来,直到返回不为空的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54803238/

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