一般来说,任务是支持的,任务在C#将被映射到承诺在javascript中,但是数组任务或者任务<T[]>尚不支持。
这是返回方法的示例任务被翻译成 javascript promise:
public partial class MyClass
{
[JSExport]
public static Task<string> GetDummyStringAsync()
{
return Task.FromResult("Hello world!");
}
}
以及调用它的相应 javascript 代码:
import { dotnet } from './dotnet.js';
const { getAssemblyExports, getConfig } = await dotnet.create();
const config = getConfig();
const exports = await getAssemblyExports(config.mainAssemblyName);
exports.MyClass.GetDummyStringAsync().then(result => console.log(result));
Microsoft article 在从 javascript 调用 C# 时,它有一个很好的类型映射表来检查类型是如何在 c# 和 javascript 之间转换的,并查看支持和不支持的内容。