如何在for循环中创建实例?

问题描述 投票:1回答:1

我从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);
  }
}
dart flutter
1个回答
1
投票

这应该是实例化数据库帮助程序的更好方法。

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);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.