如果您使用Dart编码,则可能已经使用了SDK内置的移步支持,用于类似流的东西。
但是您是否知道还有一个异步包,包含了许多有用的附加功能?
例如,有StreamGroup 它可以将多个流并为一个
StreamGroup.merge([
aStreamOfData,
anotherStream,
yetOneMoreStream,
]);
或尝试使用AsyncCache,该类将在特定时间范围内为重复调用的函数提供缓存的结果
_countCache = AsyncCache<int>(
const Duration(hours:1),
);
var val = _countCache.fetch(
() => _expensiveCalc(),
);
val = _countCache.fetch(
// This gets skipped!
() => _expensiveCalc(),
);
还有StreamQueue,它可以将数据流转换为Future的一步队列
var data = StreamQueue(myStream);
var futureOne = data.next;
var futureTwo = data.next;
vat futureThree = data.next;
如果想了解有关Package:async的内容,或者关于Flutter的其他功能,请访问flutter.dev
原文翻译自视频:视频地址