gpt4 book ai didi

dart - 在Dart的构造函数中通过网络调用初始化变量

转载 作者:行者123 更新时间:2023-12-03 04:11:20 25 4
gpt4 key购买 nike

我不太确定如何为将初始化实例变量的dart类构造构造函数。我需要在创建对象时通过对firestore的网络调用来初始化变量_desserts

class DessertDataSource extends DataTableSource {


final List<Dessert> _desserts;

DessertDataSource(this._desserts);



Future<List<Dessert>> getData() async{
await Firestore.instance.collection("desserts").getDocuments()
.then((QuerySnapshot snapshot) {
return snapshot.documents.forEach((doc) =>{
_desserts.add(Dessert.fromSnapshot(doc))
});
});
}
}

最佳答案

Dart中的构造函数不能异步。

如果要异步创建对象,请为它创建一个静态函数:

class DessertDataSource extends DataTableSource {
final List<Dessert> _desserts;
DessertDataSource._(this._desserts);

static Future<DessertDataSource> create() async {
var snapshot =
await Firestore.instance.collection("desserts").getDocuments();
return DessertDataSource._(
[for (var doc in snapshot.documents) Dessert.fromSnapshot(doc)]);
}
}

然后,您可以将其称为 await DessertDataSource.create()

关于dart - 在Dart的构造函数中通过网络调用初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60040190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com