gpt4 book ai didi

dart - 一次从流中请求一个项目的数据?

转载 作者:IT王子 更新时间:2023-10-29 06:44:21 30 4
gpt4 key购买 nike

我正在尝试从提供分页响应的 REST 端点获取数据。在 flutter 中单击按钮,我想获得响应中的下一个项目。我认为我想使用 Stream 来抽象出请求的分页性质,并自动轮询下一个结果。

类似于这个愚蠢的伪代码:

Stream<String> nextUrl(int lastPage=0)
{
// Get paginated response
batch = server.getResponse(lastPage)
for (item in batch)
{
yield item;
}
// Recurse automatically
// Not a problem if the stream is suspended
// after every item request. A big problem
// if the stream never pauses.
await for (String item in nextUrl(lastPage++)
{
yield item;
}
}


// In flutter
class WidgetState extends state<MyPage> {
Stream<String> urlStream = new nextUrl(0);
String currentItem;
...
@override
Widget build(BuildContext context) {
return new InkWell(
onTap: () {
(() async {
// This is the call I haven't figured out.
await item = urlStream().getNext();
setState(() { currentItem = item; });
})();
}
);
}
}

我觉得可能像 Stream.getNext() 这样的东西不存在?我应该暂停/取消暂停此流吗?但我不确定如何一次只返回一个项目。

最佳答案

async 包提供 StreamQueue允许这样做

var events = new StreamQueue<String>(yourStream);
var first = await events.next;
while (...) {
...
first = await events.next;
}

关于dart - 一次从流中请求一个项目的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49746485/

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