Разобрать json в фоновом режиме, используя Dart 'compute' - PullRequest
0 голосов
/ 14 марта 2020

Я пытаюсь использовать 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);

Где я Call Compute

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

Реализация класса


    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;
        }
      }
    } 

Любые отзывы приветствуются

1 Ответ

0 голосов
/ 14 марта 2020

Вам необходимо импортировать foundation.

import 'package:flutter/foundation.dart';
...