嘿,我已閱讀了關於期貨的所有信息,但我想了解一些關於正確使用的更多建議。關於使用期貨和補倉的問題
我正在編寫一個API庫,它彌合了HTTP請求和應用程序之間的差距。所以我在大多數情況下使用HTTP返回的未來,但有時候數據已經被檢索。那是使用Completer的適當時機嗎?
ex。
String _someData = "";
Future<String> getSomeData(){
if (_someData == ""){
return Api.getSomeData().then((String someData){
_someData = someData;
return _someData;
});
} else {
var completer = new Completer();
completer.complete(_someData);
return completer.future;
}
}
CNC中另外,如果我創建一個完成者,但最終沒有使用其未來或調用完成。會導致一個mem泄漏?我應該調用它的完整方法還是以某種方式處理它?
謝謝:)
這不會將_someData設置爲未來嗎?也不會阻止,直到Api.getSomeData()返回其未來? – Krtko
@Krtko運營商'await'永遠'unwrap'未來。所以,在這種情況下,你會得到一個'Future.result'。它不會阻塞'Api.getSomeData()'的調用,它會像計算方式一樣鏈接計算,就像你將使用'Future.then()', – mezoni
Ah OK謝謝,但它仍然阻止正確? – Krtko