只是玩Dart:您知道为什么这不起作用吗? 我只是希望能够经历期货的迭代。
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>>')
答案 0 :(得分:3)
map method返回一个带有元素的新的惰性Iterable,该元素是通过按迭代顺序在Iterable的每个元素上调用function参数而创建的。相反,您返回原始的iterable
。
此外,您还必须返回一个可迭代的对象,而不是迭代器,因此不要应用iterator
getter。
Iterable<Future<String>> getFutureIterataleData(int sec) {
var iterable = new Iterable.generate(5);
return iterable.map(
(n) => Future<String>((){return "Hello";}));
}