#blazor-server-side
#blazor-на стороне сервера
Вопрос:
В моем приложении на стороне сервера blazor я вызываю JSRuntime.InvokeAsync для открытия статического содержимого во всплывающем окне:
await _jsRuntime.InvokeAsync<object>("open", "/help/help.html", "_blank");
Это работает, но через некоторое время (возможно, тайм-аут?) генерируется исключение TaskCanceledException. Я попытался вызвать InvokeVoidAsync, но эффект тот же. Я могу исправить это, перехватив и проигнорировав исключение или удалив «await», но я надеялся на более чистое решение, которое не выдает мне более строгих предупреждений.
Ответ №1:
Попробуйте указать CancellationToken как CancellationToken.None
await _jsRuntime.InvokeAsync<object>("open", System.Threading.CancellationToken.None, "/help/help.html", "_blank");
Токен отмены, сигнализирующий об отмене операции. Указание этого параметра отменит любые отмены по умолчанию, например, из-за тайм-аутов (DefaultAsyncTimeout) от применения.
Ответ №2:
Чтобы устранить ошибку компилятора, используйте discard ‘_’:
_ = _jsRuntime.InvokeAsync<object>("open", "/help/help.html", "_blank");