Wie soll ich eine "ijsobjectreference" bekommen, wenn ich eine JS -Funktion aufruft, die `null` zurückgeben kann?C#

Ein Treffpunkt für C#-Programmierer
Guest
 Wie soll ich eine "ijsobjectreference" bekommen, wenn ich eine JS -Funktion aufruft, die `null` zurückgeben kann?

Post by Guest »

Zum Beispiel habe ich ein Modul in TypeScript wie: < /p>

Code: Select all

export function getIndexedDb() : IDBFactory | null
{
if (window.indexedDB)
return window.indexedDB;
else
return null;
}
Jetzt möchte ich eine IJSObjectreference seines Ergebniss erhalten, also habe ich dies in CSHARP ausprobiert:

Code: Select all

await using var module = await jsRuntime.InvokeAsync("import", "xxxx.js");
await using var result = await module.InvokeAsync("getIndexedDb");
Es funktioniert gut, wenn es ein Fenster gibt. Indexeddb , aber wenn getIndexeddb () null zurücktritt, tritt ein Fehler auf:

Uncortn (im Versprechen) Fehler: Aus dem Wert 'null' kann keine JSObjectreferenz erstellen. < /p>
< /blockquote>
(und ich kann die Ausnahme in C# nicht einmal aufnehmen. Die C# -Methode scheint hier nur gestoppt zu sein, und später werden Codes nicht ausgeführt. Ist das ein Fehler?) < /p>
Was soll ich tun, um dieses Problem zu lösen? Ich glaube nicht

Code: Select all

class Nullable
{
value: T | null;
constructor(value: T | null)
{
this.value = value;
}
getValue() : T | null
{
return this.value;
}
isNull() : boolean
{
return this.value === null;
}
}

export function getIndexedDb() : Nullable
{
if (window.indexedDB)
return new Nullable(window.indexedDB);
else
return new Nullable(null);
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post