我正在尝试使用 Facebook / Parse Bolts 框架在 Android 上并行运行多个任务。并行运行任务的文档似乎表明whenAll的结果将始终为 Void。
有没有办法获得一个或多个并行任务的实际结果?
您可以像这样访问任务的结果:
ArrayList<Task<Boolean>> tasks = getTasks();
Task.whenAll(tasks).onSuccess(new Continuation<Void, Void>() {
@Override
public Void then(Task<Void> task) throws Exception {
for (Task<Boolean> t : tasks) {
doSomething(t.getResult());
}
return null;
}
});
在上的延续中whenAll
,您可以直接从子任务中获取结果:
final Task<A> a = // ...
final Task<B> b = // ...
Task.whenAll(Arrays.asList(a, b)).continueWithTask((t) -> {
if (!a.isFaulted()) {
return doSomethingAsync(a.getResult());
}
if (!b.isFaulted()) {
return doSomethingElseAsync(b.getResult());
}
// ...
return t;
});