Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在flatter中每1分钟发出一次定时http.get请求的最简单方法是什么?_Flutter_Dart - Fatal编程技术网

Flutter 在flatter中每1分钟发出一次定时http.get请求的最简单方法是什么?

Flutter 在flatter中每1分钟发出一次定时http.get请求的最简单方法是什么?,flutter,dart,Flutter,Dart,我希望这段代码每1分钟调用一次 var response = await http.get(url) 尝试: Timer.periodic(Duration(minutes: 1), (timer) { response = await http.get(url); }); 但是我想到: 错误:“await”只能在“async”或“async*”方法中使用。 response=wait http.get(url) 我试图在其中实现这些代码的函数与Future类型是异步的。

我希望这段代码每1分钟调用一次

var response = await http.get(url)
尝试:

Timer.periodic(Duration(minutes: 1), (timer) {
      response = await http.get(url);
    });
但是我想到:

错误:“await”只能在“async”或“async*”方法中使用。 response=wait http.get(url)


我试图在其中实现这些代码的函数与Future类型是异步的。

有两种解决方案。请将函数转换为异步,如下所示:

Timer.periodic(Duration(minutes: 1), (timer) async{
      response = await http.get(url);
    });
Timer.periodic(Duration(minutes: 1), (timer) {
      http.get(url).then((result){
      response = result;
      });
    });
或者,在以后的通话中使用then,如下所示:

Timer.periodic(Duration(minutes: 1), (timer) async{
      response = await http.get(url);
    });
Timer.periodic(Duration(minutes: 1), (timer) {
      http.get(url).then((result){
      response = result;
      });
    });

您需要删除第二个代码中的
wait
。效果非常好。另一个查询,当我在此计时器中添加DateTime.now()时,它每次打印空值而不是时间戳。@恩佐,谢谢,这是一个键入错误。@theguitarfreak,你能显示代码块吗?对不起,我的错,它工作正常。尽管命令的第一次执行在1分钟后开始。如何调用它以在运行时立即执行,然后每1分钟执行一次?