Syl*_*wek 0 javascript promise
我有一个特定的承诺问题 - 我没有找到任何解决我的问题.
例如,我有服务列表(类)
const services = [
FirstCacheDataProvider,
SecondCacheDataProvider,
// etc, there can be more services, unspecified number of services
];
Run Code Online (Sandbox Code Playgroud)
每个类都实现了返回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
Run Code Online (Sandbox Code Playgroud)
一个简单的方法是在函数中使用for循环和await每个服务调用async:
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;
}
}
Run Code Online (Sandbox Code Playgroud)