Просто играю с Дротиком: Вы знаете, почему это не работает? Я просто хочу иметь возможность пройти через Iterable of Futures.
import 'dart:async';
Iterable<Future<String>> getFutureIterataleData(int sec) {
var iterable = new Iterable.generate(5);
iterable.map(
(n) => Future<String>((){return "Hello";})).iterator;
return iterable;
}
main() {
Stream<String> streamS = new Stream.fromFutures(getFutureIterataleData(5));
streamS.listen((data) {
print(data);
});
print("Done");
}
Это вызывает следующее исключение:
Exception has occurred.
_TypeError (type '_GeneratorIterable<dynamic>' is not a subtype of type 'Iterable<Future<String>>')
метод карты возвращает новый ленивый Iterable с элементами, которые создаются путем вызова аргумента функции для каждого элемента Iterable в порядке итерации. Вместо этого вы возвращаете оригинальный iterable.
Также вы должны возвращать итератор, а не итератор, поэтому не применяйте геттер iterator.
Iterable<Future<String>> getFutureIterataleData(int sec) {
var iterable = new Iterable.generate(5);
return iterable.map(
(n) => Future<String>((){return "Hello";}));
}