Flutter:如何在单个流中运行两次或多次?

时间:2019-09-22 12:00:44

标签: flutter dart bloc rxdart

我正在构建一个应用程序。我想通过不同的变量在Stream中运行两次。

是集团:

class CityWeatherBloc {
  final repository = Repository();
  final cityWeatherFetcher = PublishSubject<CityWeatherModel>();

  Observable<CityWeatherModel> get allCityWData => cityWeatherFetcher.stream;

  fetchAllCityData(String cityName) async {
    CityWeatherModel cityWeatherModel =
        await repository.fetchCityWData(cityName);

    cityWeatherFetcher.sink.add(cityWeatherModel);
  }

  dispose() {
    cityWeatherFetcher.close();
  }
}

final cityWeatherBloc = CityWeatherBloc();

这是我的数据提取程序:

class CityWeatherApi {
  Client client = Client();

  Future<CityWeatherModel> fetchCityWeatherData(String cityName) async {
    String url =
        "${Links.MAIN_URL}/current?city=$cityName&key=${Links.API_KEY}";

    var response = await client.get(url);

    if (response.statusCode == 200) {
      return CityWeatherModel.fromJson(json.decode(response.body));
    } else {
      throw Exception('Error : ${response.body}');
    }
  }
}

您看到url有一个cityName变量。但是我有一个城市清单。我想按列表获取流数据。

我搜索了答案,但找不到它...

0 个答案:

没有答案