Разобрать json в фоновом режиме с помощью «вычислений» Dart

Я пытаюсь использовать Json с помощью метода «вычисления», поскольку я ищу способы ускорить свое приложение. https://api.flutter.dev/flutter/foundation/compute.html.

Никаких упоминаний об установке пакета и вариантов использования, которые я вижу, не упоминается какой-либо конкретный импорт. https://dev.to/fallenstedt/compute-with-flutter-3p6o, https://github.com/flutter/flutter/issues/16265, Flutter-compute method

Сообщение об ошибке:

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

Любая обратная связь приветствуется


person C. Boyle    schedule 13.03.2020    source источник
comment
проверьте Полный пример   -  person pskink    schedule 14.03.2020


Ответы (1)


Вам нужно импортировать foundation.

import 'package:flutter/foundation.dart';
person Richard Heap    schedule 14.03.2020
comment
Спасибо, Ричард. - person C. Boyle; 16.03.2020