Flutter Widget 之Package:async

377 阅读1分钟

如果您使用Dart编码,则可能已经使用了SDK内置的移步支持,用于类似流的东西。

但是您是否知道还有一个异步包,包含了许多有用的附加功能?

ezgif.com-gif-maker.gif

例如,有StreamGroup 它可以将多个流并为一个

StreamGroup.merge([
    aStreamOfData,
    anotherStream,
    yetOneMoreStream,
]);

ezgif.com-gif-maker (1).gif

或尝试使用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;

ezgif.com-gif-maker (2).gif

如果想了解有关Package:async的内容,或者关于Flutter的其他功能,请访问flutter.dev

原文翻译自视频:视频地址