gpt4 book ai didi

dart - 为 Dart 中的每个发射生成一个带有延迟的流

转载 作者:行者123 更新时间:2023-12-02 00:25:08 24 4
gpt4 key购买 nike

我想在 dart 中以特定延迟从列表中发出流中的值。

因此,从 [1,2,3],这是一个常规列表,我想在单独的事件中发出像 1...2...3 这样的值。

我试过这样的东西

List<int> myList = [1,2,3];
Subject _current = BehaviorSubject<int>();
Stream<int> get current$ => _current.stream.delay(Duration(seconds:1));

myList.forEach(current.add);

但我得到的是 ...123,所以这会延迟整个流 1 秒,而不是列表中的每个值。

有什么想法吗?谢谢

最佳答案

如果你想避免 rxdart,你可以使用像这样的简单转换函数:

Stream<T> streamDelayer<T>(Stream<T> inputStream, Duration delay) async* {
await for (final val in inputStream) {
yield val;
await Future.delayed(delay);
}
}

void main() {
var s = Stream.fromIterable([1, 2, 3]);
streamDelayer(s, Duration(seconds: 1)).forEach(print);
}

关于dart - 为 Dart 中的每个发射生成一个带有延迟的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54025114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com