在Dart中,我想运行几个相互独立的代价高昂的函数,并将结果分配给我的变量,具体取决于哪个函数产生了它们。大致并行版本的这个:如何根据未来生产的飞镖分配飞镖中的期货结果?
double x = getX();
double y = getY();
我在想是这样的:
double x, y;
Future.wait([
futureGetX(),
futureGetY()
]).then((List results) {
results.foreach((r) {
// if(r is produced by futureGetX) x = r;
// if(r is produced by futureGetY) y = r;
});
});
,我不知道如何实现这个is produced by
部分。一个方法是将包装每个函数的结果在不同的类,在then
部分,检查类结果:
if(r is wrapperForX) x = r.getValue();
if(r is wrapperForY) y = r.getValue();
但这似乎非常不雅给我。有什么建议么?
我们如何知道哪一个产生了结果?没有产生结果的那个返回null吗?或者你只想得到第一个结果而忽略第二个结果? –