在 Flutter 中每 1 分钟发出一次定时 http.get 请求的最简单方法是啥?
Posted
技术标签:
【中文标题】在 Flutter 中每 1 分钟发出一次定时 http.get 请求的最简单方法是啥?【英文标题】:What is the easiest way to make a timed http.get request every 1 minute in Flutter?在 Flutter 中每 1 分钟发出一次定时 http.get 请求的最简单方法是什么? 【发布时间】:2021-08-06 08:43:46 【问题描述】:我希望每 1 分钟调用一次这段代码。
var response = await http.get(url)
试过了:
Timer.periodic(Duration(minutes: 1), (timer)
response = await http.get(url);
);
但是想出了:
错误:“await”只能用于“async”或“async*”方法。 响应 = 等待 http.get(url);
我试图在其中实现这些代码的函数与 Future 类型异步。
【问题讨论】:
【参考方案1】:有两种解决方案。请将函数转换为异步,如下所示:
Timer.periodic(Duration(minutes: 1), (timer) async
response = await http.get(url);
);
或者,在以后的调用中使用 then ,如下所示:
Timer.periodic(Duration(minutes: 1), (timer)
http.get(url).then((result)
response = result;
);
);
【讨论】:
您需要删除第二个代码中的await
。
完美运行。另一个查询,当我在这个 Timer 中添加一个 DateTime.now() 时,它每次都打印 null 而不是时间戳。
@Enzo,谢谢,这是一个打字错误。
@theguitarfreak,你能显示代码块吗?
对不起,它工作正常。虽然命令的第一次执行在 1 分钟后开始。如何调用它在运行时立即执行,然后每 1 分钟执行一次?以上是关于在 Flutter 中每 1 分钟发出一次定时 http.get 请求的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章