在 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 请求的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins定时构建时间设置

Jenkins定时构建时间设置

在 Swift 中每 x 分钟做一次

在 do while 循环内部,我想在 c# 中每 1 分钟执行一次特定代码,直到条件满足

在日期时间中每 10 分钟绘制一次

如何在无限循环中每 3 分钟回显一次?