我从API获取数据。存储数据非常慢,因为在我的for
循环中插入数据。如何在for
循环或类级别之前创建其实例?
storeWoDescription(String url,String token) async {
final response = await http.get(
'${url}/v1.0/WoDescription',
headers: {'Authorization': 'Bearer ${token}'},);
final jsonResponse = json.decode(response.body);
WoDescription model = WoDescription.fromJson(jsonResponse);
int length = model.data.length;
for(int i=0; i<length; i++) {
var data = DataWoDescription(
i: model.data[i].i,
d: model.data[i].d,
e: model.data[i].e,
w: model.data[i].w,
a: model.data[i].a,
r: model.data[i].r,
t: model.data[i].t,
du: model.data[i].du,
s: model.data[i].s,
ra: model.data[i].ra,
cul: model.data[i].cul,
);
await HelperDefCatMaster().insertWoDescription(data);
}
}
这应该是实例化数据库帮助程序的更好方法。
var helper;
void main() async {
helper = await HelperDefCatMaster(); // instantiate it just once and use it everywhere.
}
storeWoDescription(String url, String token) async {
final response = await http.get(
'${url}/v1.0/WoDescription',
headers: {'Authorization': 'Bearer ${token}'},
);
final jsonResponse = json.decode(response.body);
WoDescription model = WoDescription.fromJson(jsonResponse);
int length = model.data.length;
for (int i = 0; i < length; i++) {
var data = DataWoDescription(
i: model.data[i].i,
d: model.data[i].d,
e: model.data[i].e,
w: model.data[i].w,
a: model.data[i].a,
r: model.data[i].r,
t: model.data[i].t,
du: model.data[i].du,
s: model.data[i].s,
ra: model.data[i].ra,
cul: model.data[i].cul,
);
await helper.insertWoDescription(data);
}
}