繁体   English   中英

Dart中的静态函数-只需调用一次

[英]Static Functions in Dart - Calling just once

我创建了一个服务类来读取JSON文件并将其内容存储在Class中。

  static getAllKurals() async {
    Map<String, dynamic> data = await _parseJsonFromAssets();
    return Response.fromJsonMap(data);
  }

  static Future<Kural> getRandomKural() async {
    Map<String, dynamic> data = await _parseJsonFromAssets();
    Response response = Response.fromJsonMap(data);

    return Future<Kural>.value(response.kurals[getRandomKuralNumber()]);
  }

我有几种处理数据的方法。

问题在于曾经有函数每次都读取数据。 是否可以使服务仅读取一次文件并使用所有功能都可以使用的Map? 我不确定这在Dart中叫什么。

  static Map<String, dynamic> _allKuralsCache;
  static getAllKurals() async {
    Map<String, dynamic> data = _allKuralsCache ?? await _parseJsonFromAssets();
    return Response.fromJsonMap(data);
  }

或者也避免每次都调用Response.fromJsonMap(...)

  static Response _allKuralsCache;
  static getAllKurals() async {
    if(_dataResponseCache == null) {
      Map<String, dynamic> data = _dataCache ?? await _parseJsonFromAssets();
      _dataResponseCache = Response.fromJsonMap(data);
    }
    return _dataResponseCache; 
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM