citiesStream method
Returns a Stream of MorrocanCity
of all cities in Morocco.
MoroccanCities.instance.citiesStream().listen((city) {
print(city.id);
print(city.name);
});
Implementation
@override
Stream<MorrocanCity> citiesStream() {
final json =
MorrocanCitiesUtils.fileContent("lib/src/core/data/cities.json");
final receivePort = ReceivePort();
Stream<MorrocanCity> stream = Isolate.spawn(
MorrocanCitiesUtils.decodeAndModelizeCities,
[receivePort.sendPort, json],
)
.asStream()
.asyncExpand((_) => receivePort)
.takeWhile((element) => element is MorrocanCity)
.cast();
return stream;
}