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)) 是正确的做法。