.Net 7 JS在实验性webAssembly工具中导出任务

oprakyz7  于 2023-02-10  发布在  .NET
关注(0)|答案(1)|浏览(212)

我知道.NET7webAssembly工具是实验性的,但是有人能解释一下为什么我不能JSexport一个任务吗?(因为我谷歌了所有的)这是因为它的实验性,并不是所有的类型都支持,但它听起来很奇怪,我也尝试使用IronBarcode包,我得到的错误,这使我想知道是否有什么包可以使用的限制,导出到JS的方法有哪些限制?
Sample Image the code

pw9qyyiw

pw9qyyiw1#

一般来说,任务是受支持的,c# 中的 Task 会被Map到javascript中的 promise,但是 TasksTask〈T[]〉 的数组还不受支持。
下面是一个方法返回的 Task 被转换为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#时,它有一个很好的类型Map表来检查类型是如何在c#和javascript之间转换的,并查看哪些是受支持的,哪些是不受支持的。

相关问题