使用 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';
我正在尝试使用 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';