Dart:函数的参数符号

Dart: function's parameter notation

我有时会发现这样的东西:

Future<List<Photo>> fetchPhotos(http.Client client) async {
final response = await client.get('https://jsonplaceholder.typicode.com/photos');
return compute(parsePhotos, response.body);
}

parsePhotos 函数所在位置:

List<Photo> parsePhotos(String responseBody) {
final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Photo>((json) => Photo.fromJson(json)).toList();
}

我看不懂compute(parsePhotos, response.body)parePhotos函数接受了responseBody参数,但是compute写的好像没有接受.那么,有人可以向我解释一下这个符号吗? P.s。希望它足够清楚。

return compute(parsePhotos, response.body);

parsePhotosresponse.body 只是两个独立的参数。 第一个是对传递给 computes callback 参数的 parsePhotos 函数的引用,第二个是传递给 [=] 的来自 client.get(...) 的响应数据18=] compute 函数的参数。

compute 所做的是创建一个以 parsePhotos 作为入口点的新隔离(如 main() 作为主隔离),然后将 message 传递给它作为范围。

所以不是这一行return compute(parsePhotos, response.body);response.body传递给parsePhotos而是

final Isolate isolate = await Isolate.spawn(
    _spawn,
    new _IsolateConfiguration<Q, R>(
      callback,
      message,

来自 compute 实施 https://docs.flutter.io/flutter/foundation/compute.html