使用 Dart 的 'compute' 在后台解析 json

Parse json in background using Dart's 'compute'

我正在尝试使用 Json 和 'compute' 方法,因为我正在研究加速我的应用程序的方法。 https://api.flutter.dev/flutter/foundation/compute.html

没有提到包的安装,我看到的用例也没有提到任何特定的导入。 https://dev.to/fallenstedt/compute-with-flutter-3p6o, https://github.com/flutter/flutter/issues/16265,

错误信息:

Compiler message:
lib/account_control.dart:34:26: Error: Method not found: 'compute'.
      parsedJson = await compute(jsonDecode, response.body);

我调用计算的地方

if (response.statusCode == 200) {
  parsedJson = await compute(jsonDecode, response.body);
  Globals.data = parsedJson;
  print("Succesfully set Globals.data");
  return true;
}

Class实施


    class AccountControl {
      static dynamic getAccDetails() async {
        var token = Globals.token;

        Globals.tokenDecode = Globals.parseJwt(Globals.token);
        Globals.accountId = Globals.tokenDecode["accountId"].toString();
        Globals.appUserId = Globals.tokenDecode["appUserId"].toString();
        Globals.partitionId = 0;

        var baseUrl = Globals.baseUrl; //platform server
        var accountId = Globals.accountId;
        var host = Globals.host;
        var accDetailsUri =
            Uri.encodeFull(baseUrl + "t/rest/cp/v1.0/account/" + accountId);

        print(accDetailsUri);

        Map<String, String> headers = {
          'Accept': 'application/json',
          'Authorization': 'Bearer ' + token,
          'Cache-Control': 'no-cache',
          'Host': host
        };

        var response = await http.get(accDetailsUri, headers: headers);

        var parsedJson;

        if (response.statusCode == 200) {
          parsedJson = await compute(jsonDecode, response.body);
          Globals.data = parsedJson;
          print("Succesfully set Globals.data");
          return true;
        }
      }
    } 

欢迎任何反馈

您需要导入 foundation.

import 'package:flutter/foundation.dart';