Dart timeout() 在指定的持续时间后似乎没有触发
Dart timeout() does not seem to be triggering after specified duration
我正在尝试将函数调用包装在重试和超时中。下面的重试似乎工作正常,但 timeout() 似乎根本没有按预期触发。
我已经尝试将 ontimeout 设置为打印消息、抛出异常、抛出 TimeoutException,并且在所有情况下都会触发预期的超时。我还尝试在被调用的函数中添加一个 sleep() 以确保它比 timeout() 持续时间更长。
await retry(
() => _sendUpdateTaskRequest(resultsJson).timeout(Duration(seconds: 5),
onTimeout: () => throw new Exception("ERRRR!")),
retryIf: (Exception e) =>
e is SocketException ||
e is TimeoutException ||
e is ClientException,
maxAttempts: requestRetryLimit,
);
lrn 的评论是准确的。将 sleep
更改为 await Future.delayed(const Duration(seconds: 5))
是正确的做法。
我正在尝试将函数调用包装在重试和超时中。下面的重试似乎工作正常,但 timeout() 似乎根本没有按预期触发。
我已经尝试将 ontimeout 设置为打印消息、抛出异常、抛出 TimeoutException,并且在所有情况下都会触发预期的超时。我还尝试在被调用的函数中添加一个 sleep() 以确保它比 timeout() 持续时间更长。
await retry(
() => _sendUpdateTaskRequest(resultsJson).timeout(Duration(seconds: 5),
onTimeout: () => throw new Exception("ERRRR!")),
retryIf: (Exception e) =>
e is SocketException ||
e is TimeoutException ||
e is ClientException,
maxAttempts: requestRetryLimit,
);
lrn 的评论是准确的。将 sleep
更改为 await Future.delayed(const Duration(seconds: 5))
是正确的做法。