React to JSRuntime changes
This commit is contained in:
parent
02fd9a9dc9
commit
98c8988baa
|
|
@ -13,6 +13,7 @@ using Microsoft.AspNetCore.SignalR;
|
|||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.JSInterop;
|
||||
using Microsoft.JSInterop.Infrastructure;
|
||||
|
||||
namespace Microsoft.AspNetCore.Components.Server.Circuits
|
||||
{
|
||||
|
|
@ -342,7 +343,7 @@ namespace Microsoft.AspNetCore.Components.Server.Circuits
|
|||
{
|
||||
SetCurrentJSRuntime();
|
||||
Log.BeginInvokeDotNet(_logger, callId, assemblyName, methodIdentifier, dotNetObjectId);
|
||||
DotNetDispatcher.BeginInvoke(callId, assemblyName, methodIdentifier, dotNetObjectId, argsJson);
|
||||
DotNetDispatcher.BeginInvokeDotNet(callId, assemblyName, methodIdentifier, dotNetObjectId, argsJson);
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -377,7 +378,7 @@ namespace Microsoft.AspNetCore.Components.Server.Circuits
|
|||
Log.EndInvokeJSSucceeded(_logger, asyncCall);
|
||||
}
|
||||
|
||||
DotNetDispatcher.EndInvoke(arguments);
|
||||
DotNetDispatcher.EndInvokeJS(arguments);
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ using Microsoft.JSInterop;
|
|||
|
||||
namespace Microsoft.AspNetCore.Components.Server.Circuits
|
||||
{
|
||||
internal class RemoteJSRuntime : JSRuntimeBase
|
||||
internal class RemoteJSRuntime : JSRuntime
|
||||
{
|
||||
private readonly CircuitOptions _options;
|
||||
private readonly ILogger<RemoteJSRuntime> _logger;
|
||||
|
|
|
|||
|
|
@ -64,11 +64,11 @@ namespace Microsoft.AspNetCore.Components.Web.Rendering
|
|||
var component = InstantiateComponent(componentType);
|
||||
var componentId = AssignRootComponentId(component);
|
||||
|
||||
var attachComponentTask = _jsRuntime.InvokeAsync<object>(
|
||||
var attachComponentTask = _jsRuntime.InvokeVoidAsync(
|
||||
"Blazor._internal.attachRootComponentToElement",
|
||||
domElementSelector,
|
||||
componentId);
|
||||
CaptureAsyncExceptions(attachComponentTask);
|
||||
CaptureAsyncExceptions(attachComponentTask.AsTask());
|
||||
|
||||
return RenderRootComponentAsync(componentId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -427,12 +427,8 @@ namespace Microsoft.AspNetCore.Components.Web.Rendering
|
|||
private TestRemoteRenderer GetRemoteRenderer(IServiceProvider serviceProvider, CircuitClientProxy circuitClient = null)
|
||||
{
|
||||
var jsRuntime = new Mock<IJSRuntime>();
|
||||
jsRuntime.Setup(r => r.InvokeAsync<object>(
|
||||
"Blazor._internal.attachRootComponentToElement",
|
||||
It.IsAny<int>(),
|
||||
It.IsAny<string>(),
|
||||
It.IsAny<int>()))
|
||||
.ReturnsAsync(Task.FromResult<object>(null));
|
||||
jsRuntime.Setup(r => r.InvokeAsync<object>("Blazor._internal.attachRootComponentToElement", It.IsAny<object[]>()))
|
||||
.ReturnsAsync(new ValueTask<object>((object)null));
|
||||
|
||||
return new TestRemoteRenderer(
|
||||
serviceProvider,
|
||||
|
|
|
|||
|
|
@ -72,11 +72,11 @@
|
|||
var instanceMethodsTarget = new JavaScriptInterop();
|
||||
|
||||
Console.WriteLine("Starting interop invocations.");
|
||||
await JSRuntime.InvokeAsync<object>(
|
||||
await JSRuntime.InvokeVoidAsync(
|
||||
"jsInteropTests.invokeDotNetInteropMethodsAsync",
|
||||
shouldSupportSyncInterop,
|
||||
DotNetObjectRef.Create(testDTOTOPassByRef),
|
||||
DotNetObjectRef.Create(instanceMethodsTarget));
|
||||
DotNetObjectReference.Create(testDTOTOPassByRef),
|
||||
DotNetObjectReference.Create(instanceMethodsTarget));
|
||||
|
||||
if (shouldSupportSyncInterop)
|
||||
{
|
||||
|
|
@ -117,7 +117,7 @@
|
|||
var passDotNetObjectByRefArg = new PassDotNetObjectByRefArgs
|
||||
{
|
||||
StringValue = "My string",
|
||||
TestDto = DotNetObjectRef.Create(passDotNetObjectByRef),
|
||||
TestDto = DotNetObjectReference.Create(passDotNetObjectByRef),
|
||||
};
|
||||
var result = await JSRuntime.InvokeAsync<ReceiveDotNetObjectByRefArgs>("receiveDotNetObjectByRefAsync", passDotNetObjectByRefArg);
|
||||
ReceiveDotNetObjectByRefAsyncResult["stringValueUpper"] = result.StringValueUpper;
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
var passDotNetObjectByRefArg = new PassDotNetObjectByRefArgs
|
||||
{
|
||||
StringValue = "My string",
|
||||
TestDto = DotNetObjectRef.Create(passDotNetObjectByRef),
|
||||
TestDto = DotNetObjectReference.Create(passDotNetObjectByRef),
|
||||
};
|
||||
var result = inProcRuntime.Invoke<ReceiveDotNetObjectByRefArgs>("receiveDotNetObjectByRef", passDotNetObjectByRefArg);
|
||||
ReceiveDotNetObjectByRefResult["stringValueUpper"] = result.StringValueUpper;
|
||||
|
|
@ -165,7 +165,7 @@
|
|||
{
|
||||
public string StringValue { get; set; }
|
||||
|
||||
public DotNetObjectRef<TestDTO> TestDto { get; set; }
|
||||
public DotNetObjectReference<TestDTO> TestDto { get; set; }
|
||||
}
|
||||
|
||||
public class ReceiveDotNetObjectByRefArgs
|
||||
|
|
@ -174,6 +174,6 @@
|
|||
|
||||
public int TestDtoNonSerializedValue { get; set; }
|
||||
|
||||
public DotNetObjectRef<TestDTO> TestDto { get; set; }
|
||||
public DotNetObjectReference<TestDTO> TestDto { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static void VoidWithThreeParameters(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3)
|
||||
DotNetObjectReference<TestDTO> parameter3)
|
||||
{
|
||||
Invocations[nameof(VoidWithThreeParameters)] = new object[] { parameter1, parameter2, parameter3.Value.GetNonSerializedValue() };
|
||||
}
|
||||
|
|
@ -60,7 +60,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static void VoidWithFourParameters(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4)
|
||||
{
|
||||
Invocations[nameof(VoidWithFourParameters)] = new object[] { parameter1, parameter2, parameter3.Value.GetNonSerializedValue(), parameter4 };
|
||||
|
|
@ -70,7 +70,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static void VoidWithFiveParameters(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5)
|
||||
{
|
||||
|
|
@ -81,7 +81,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static void VoidWithSixParameters(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6)
|
||||
|
|
@ -93,7 +93,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static void VoidWithSevenParameters(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6,
|
||||
|
|
@ -106,7 +106,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static void VoidWithEightParameters(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6,
|
||||
|
|
@ -140,7 +140,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static object[] EchoThreeParameters(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3)
|
||||
DotNetObjectReference<TestDTO> parameter3)
|
||||
{
|
||||
return new object[] { parameter1, parameter2, parameter3.Value.GetNonSerializedValue() };
|
||||
}
|
||||
|
|
@ -149,7 +149,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static object[] EchoFourParameters(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4)
|
||||
{
|
||||
return new object[] { parameter1, parameter2, parameter3.Value.GetNonSerializedValue(), parameter4 };
|
||||
|
|
@ -159,7 +159,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static object[] EchoFiveParameters(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5)
|
||||
{
|
||||
|
|
@ -169,7 +169,7 @@ namespace BasicTestApp.InteropTest
|
|||
[JSInvokable]
|
||||
public static object[] EchoSixParameters(ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6)
|
||||
|
|
@ -180,7 +180,7 @@ namespace BasicTestApp.InteropTest
|
|||
[JSInvokable]
|
||||
public static object[] EchoSevenParameters(ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6,
|
||||
|
|
@ -193,7 +193,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static object[] EchoEightParameters(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6,
|
||||
|
|
@ -230,7 +230,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task VoidWithThreeParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3)
|
||||
DotNetObjectReference<TestDTO> parameter3)
|
||||
{
|
||||
Invocations[nameof(VoidWithThreeParametersAsync)] = new object[] { parameter1, parameter2, parameter3.Value.GetNonSerializedValue() };
|
||||
return Task.CompletedTask;
|
||||
|
|
@ -240,7 +240,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task VoidWithFourParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4)
|
||||
{
|
||||
Invocations[nameof(VoidWithFourParametersAsync)] = new object[] { parameter1, parameter2, parameter3.Value.GetNonSerializedValue(), parameter4 };
|
||||
|
|
@ -251,7 +251,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task VoidWithFiveParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5)
|
||||
{
|
||||
|
|
@ -263,7 +263,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task VoidWithSixParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6)
|
||||
|
|
@ -276,7 +276,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task VoidWithSevenParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6,
|
||||
|
|
@ -290,7 +290,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task VoidWithEightParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6,
|
||||
|
|
@ -325,7 +325,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task<object[]> EchoThreeParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3)
|
||||
DotNetObjectReference<TestDTO> parameter3)
|
||||
{
|
||||
return Task.FromResult(new object[] { parameter1, parameter2, parameter3.Value.GetNonSerializedValue() });
|
||||
}
|
||||
|
|
@ -334,7 +334,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task<object[]> EchoFourParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4)
|
||||
{
|
||||
return Task.FromResult(new object[] { parameter1, parameter2, parameter3.Value.GetNonSerializedValue(), parameter4 });
|
||||
|
|
@ -344,7 +344,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task<object[]> EchoFiveParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5)
|
||||
{
|
||||
|
|
@ -354,7 +354,7 @@ namespace BasicTestApp.InteropTest
|
|||
[JSInvokable]
|
||||
public static Task<object[]> EchoSixParametersAsync(ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6)
|
||||
|
|
@ -366,7 +366,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task<object[]> EchoSevenParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6,
|
||||
|
|
@ -379,7 +379,7 @@ namespace BasicTestApp.InteropTest
|
|||
public static Task<object[]> EchoEightParametersAsync(
|
||||
ComplexParameter parameter1,
|
||||
byte parameter2,
|
||||
DotNetObjectRef<TestDTO> parameter3,
|
||||
DotNetObjectReference<TestDTO> parameter3,
|
||||
int parameter4,
|
||||
long parameter5,
|
||||
float parameter6,
|
||||
|
|
@ -390,26 +390,26 @@ namespace BasicTestApp.InteropTest
|
|||
}
|
||||
|
||||
[JSInvokable]
|
||||
public static Dictionary<string, DotNetObjectRef<TestDTO>> ReturnDotNetObjectByRef()
|
||||
public static Dictionary<string, DotNetObjectReference<TestDTO>> ReturnDotNetObjectByRef()
|
||||
{
|
||||
return new Dictionary<string, DotNetObjectRef<TestDTO>>
|
||||
return new Dictionary<string, DotNetObjectReference<TestDTO>>
|
||||
{
|
||||
{ "Some sync instance", DotNetObjectRef.Create(new TestDTO(1000)) }
|
||||
{ "Some sync instance", DotNetObjectReference.Create(new TestDTO(1000)) }
|
||||
};
|
||||
}
|
||||
|
||||
[JSInvokable]
|
||||
public static async Task<Dictionary<string, DotNetObjectRef<TestDTO>>> ReturnDotNetObjectByRefAsync()
|
||||
public static async Task<Dictionary<string, DotNetObjectReference<TestDTO>>> ReturnDotNetObjectByRefAsync()
|
||||
{
|
||||
await Task.Yield();
|
||||
return new Dictionary<string, DotNetObjectRef<TestDTO>>
|
||||
return new Dictionary<string, DotNetObjectReference<TestDTO>>
|
||||
{
|
||||
{ "Some async instance", DotNetObjectRef.Create(new TestDTO(1001)) }
|
||||
{ "Some async instance", DotNetObjectReference.Create(new TestDTO(1001)) }
|
||||
};
|
||||
}
|
||||
|
||||
[JSInvokable]
|
||||
public static int ExtractNonSerializedValue(DotNetObjectRef<TestDTO> objectByRef)
|
||||
public static int ExtractNonSerializedValue(DotNetObjectReference<TestDTO> objectByRef)
|
||||
{
|
||||
return objectByRef.Value.GetNonSerializedValue();
|
||||
}
|
||||
|
|
@ -425,7 +425,7 @@ namespace BasicTestApp.InteropTest
|
|||
ThisTypeName = GetType().Name,
|
||||
StringValueUpper = input.StringValue.ToUpperInvariant(),
|
||||
IncomingByRef = input.DTOByRef.Value.GetNonSerializedValue(),
|
||||
OutgoingByRef = DotNetObjectRef.Create(new TestDTO(1234)),
|
||||
OutgoingByRef = DotNetObjectReference.Create(new TestDTO(1234)),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -441,7 +441,7 @@ namespace BasicTestApp.InteropTest
|
|||
ThisTypeName = GetType().Name,
|
||||
StringValueUpper = input.StringValue.ToUpperInvariant(),
|
||||
IncomingByRef = input.DTOByRef.Value.GetNonSerializedValue(),
|
||||
OutgoingByRef = DotNetObjectRef.Create(new TestDTO(1234)),
|
||||
OutgoingByRef = DotNetObjectReference.Create(new TestDTO(1234)),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -449,7 +449,7 @@ namespace BasicTestApp.InteropTest
|
|||
{
|
||||
public string StringValue { get; set; }
|
||||
|
||||
public DotNetObjectRef<TestDTO> DTOByRef { get; set; }
|
||||
public DotNetObjectReference<TestDTO> DTOByRef { get; set; }
|
||||
}
|
||||
|
||||
public class InstanceMethodOutput
|
||||
|
|
@ -460,7 +460,7 @@ namespace BasicTestApp.InteropTest
|
|||
|
||||
public int IncomingByRef { get; set; }
|
||||
|
||||
public DotNetObjectRef<TestDTO> OutgoingByRef { get; set; }
|
||||
public DotNetObjectReference<TestDTO> OutgoingByRef { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@
|
|||
try
|
||||
{
|
||||
using var cancellationTokenSource = new System.Threading.CancellationTokenSource(TimeSpan.FromSeconds(1));
|
||||
await JSRuntime.InvokeAsync<object>(
|
||||
await JSRuntime.InvokeVoidAsync(
|
||||
"asyncFunctionTakesLongerThanDefaultTimeoutToResolve",
|
||||
Array.Empty<object>(),
|
||||
cancellationTokenSource.Token);
|
||||
cancellationTokenSource.Token,
|
||||
Array.Empty<object>());
|
||||
}
|
||||
catch (TaskCanceledException)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
@inject NavigationManager NavigationManager
|
||||
@inject Microsoft.JSInterop.IJSRuntime JSRuntime
|
||||
@using Microsoft.JSInterop
|
||||
@using Microsoft.AspNetCore.Components.Routing
|
||||
|
||||
@inject IJSRuntime JSRuntime
|
||||
@inject NavigationManager NavigationManager
|
||||
@implements IDisposable
|
||||
|
||||
<button @onclick="Navigate">Navigate</button>
|
||||
|
|
@ -29,7 +31,6 @@
|
|||
|
||||
async Task Navigate()
|
||||
{
|
||||
await JSRuntime.InvokeAsync<object>("navigationManagerNavigate");
|
||||
await JSRuntime.InvokeVoidAsync("navigationManagerNavigate");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@ namespace BasicTestApp.ServerReliability
|
|||
public class JSInterop
|
||||
{
|
||||
[JSInvokable]
|
||||
public static DotNetObjectRef<ImportantInformation> CreateImportant()
|
||||
public static DotNetObjectReference<ImportantInformation> CreateImportant()
|
||||
{
|
||||
return DotNetObjectRef.Create(new ImportantInformation());
|
||||
return DotNetObjectReference.Create(new ImportantInformation());
|
||||
}
|
||||
|
||||
[JSInvokable]
|
||||
public static string ReceiveTrivial(DotNetObjectRef<TrivialInformation> information)
|
||||
public static string ReceiveTrivial(DotNetObjectReference<TrivialInformation> information)
|
||||
{
|
||||
return information.Value.Message;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ namespace TestContentPackage
|
|||
{
|
||||
public static class MyPrompt
|
||||
{
|
||||
public static Task<string> Show(IJSRuntime jsRuntime, string message)
|
||||
public static ValueTask<string> Show(IJSRuntime jsRuntime, string message)
|
||||
{
|
||||
return jsRuntime.InvokeAsync<string>(
|
||||
"TestContentPackage.showPrompt", // Keep in sync with identifiers in the.js file
|
||||
|
|
|
|||
|
|
@ -11,14 +11,14 @@ namespace Microsoft.AspNetCore.Mvc.ViewFeatures
|
|||
{
|
||||
internal class UnsupportedJavaScriptRuntime : IJSRuntime
|
||||
{
|
||||
public Task<T> InvokeAsync<T>(string identifier, params object[] args)
|
||||
public ValueTask<TValue> InvokeAsync<TValue>(string identifier, CancellationToken cancellationToken, object[] args)
|
||||
{
|
||||
throw new InvalidOperationException("JavaScript interop calls cannot be issued during server-side prerendering, because the page has not yet loaded in the browser. Prerendered components must wrap any JavaScript interop calls in conditional logic to ensure those interop calls are not attempted during prerendering.");
|
||||
}
|
||||
|
||||
public Task<TValue> InvokeAsync<TValue>(string identifier, IEnumerable<object> args, CancellationToken cancellationToken = default)
|
||||
ValueTask<TValue> IJSRuntime.InvokeAsync<TValue>(string identifier, object[] args)
|
||||
{
|
||||
throw new InvalidOperationException("JavaScript interop calls cannot be issued during server-side prerendering, because the page has not yet loaded in the browser. Prerendered components must wrap any JavaScript interop calls in conditional logic to ensure those interop calls are not attempted during prerendering.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue