If you want that behaviour, you probably want Enum.take_every/2 or Stream.take_every/2.
It could look like this then:
def get_cities_weather(csv_path) do
alias NimbleCSV.RFC4180, as: CSV
csv_path
|> File.stream!
|> CSV.parse_stream
|> Stream.map(fn [city, city_ascii, lat, lng, pop, country, iso2, iso3, province] ->
%{name: city_ascii, lat: lat, lng: lng}
end)
|> Stream.take_every(500)
|> Enum.map(fn city ->
Metex.Worker.temperature_of(city)
end)
end






















