2014-11-05 84 views
2

我用樣板代碼從1個店如檢索多個專賣店在鏢

MonthStore monthStore = new MonthStore(); 
monthStore.open().then((months) { 

檢索數據,但我有困難取回從多個相關的存儲數據。這是我能做的最好的嗎?

MonthStore monthStore = new MonthStore(); 
monthStore.open().then((months) { 
    TranStore tranStore = new TranStore(); 
    tranStore.open().then((trans) { 

    // months[trans.monthId].name 

    }); 
}); 

我嘗試使用Future.wait這樣

// declare the stores 
MonthStore monthStore = new MonthStore(); 
TranStore tranStore = new TranStore(); 

Future.wait(
    [ 
    getMonth(monthStore, intMonth), 
    // another call 
    ] 
) 
.then... 

Future<Map> getMonth(mnthStore, mnth) { 
    mnthStore.open() 
    .then((mnths) { 
     return mnths[mnth]; 
    }) 
    // need a return here! 
}); 

但是編輯說,沒有在未來指定的回報。

我在這裏錯過了什麼?

回答

2
Future<Map> getMonth(mnthStore, mnth) { 
    return mnthStore.open() // <= here the return is important 
    .then((mnths) { 
    return mnths[mnth]; 
    }); 
}); 
+0

完美!我幾個小時都在爲此出汗。 – khany 2014-11-05 10:51:09

+0

我想了幾個小時,爲什麼今天沒有人問任何Dart問題;-) – 2014-11-05 10:54:40

+1

大聲笑。這就像是一位父親告訴他的孩子在他展示如何處理刀之前先切斷自己。 – khany 2014-11-05 11:00:42