在dart中把未来函数转换为流函数

问题描述 投票:0回答:1

我想把Stream从Future中取出来......请问如何改变Stream中的Future.例如一个返回Future Movie的函数。

Future < Movie > getMovieDetails(int id) async {
    Movie m = Movie.fromMap(await _service.v3.movies.getDetails(id, language: _lang));
    return m;
}

谢谢你!

flutter dart stream future
1个回答
0
投票

你可以将你的方法标记为 async* 其中返回一个 Stream 而不是 Future:

Stream<Movie> getMovieDetails(int id) async* {
  yield Movie.fromMap(await _service.v3.movies.getDetails(id, language: _lang));
}

然后你可以 yield 一个或多个值。当该方法退出时,流将被关闭。

在这里阅读更多信息。https:/medium.com@jelenaaa.lecicwhat-are-sync-async-yield-and-yield-in-dart-defe57d06381

© www.soinside.com 2019 - 2024. All rights reserved.