如何重新发送音频请求,取消之前的请求并重新发送


final client = Dio();
Future<Voice> getData() async {
final url = 'url';
try {
final response = await client.get(url);
if (response.statusCode == 200) {
return Voice.fromJson(response.data);
} else {
print('${response.statusCode} : ${response.data.toString()}');
throw response.statusCode;
}
} catch (error) {
print(error);
}
}

我如何取消之前的请求并再次发送,我有一个复选框,在检查和取消检查时,我发送带有不同参数的请求,但问题是当用户检查&取消5次,10次快速应用程序不工作,因为API请求一次又一次没有处理前一个,我想通过取消前一个请求并再次发送来处理它,无论他检查得多快&取消复选框我将取消之前的请求并再次发送,这样应用程序将正常工作,并将根据复选框的当前状态给出结果,请指导

非常感谢您的宝贵时间和指导

当您发送请求时,您可以指定取消令牌(在这里和这个示例中了解更多关于它的信息),但老实说,在您取消请求之前,我会考虑以下任何一种:

  • 重做UI,这样用户就不能快速地选择复选框或者
  • 以一种只有当整个表单/页面被填满/完成时才发出请求的方式修改逻辑或
  • 以一种提前可用数据的方式重做逻辑,改变UI只会导致局部变化。

最新更新