Iterable.generate:Iterable <future <string >>引发异常

时间:2018-12-15 15:46:27

标签: dart

只是玩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>>')

1 个答案:

答案 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";}));

  }
相关问题