在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嗎?或者你只想得到第一個結果而忽略第二個結果? –