【问题标题】:.Net 7 JSExport a Task in experimental webAssembly tool.Net 7 JSExport 实验性 webAssembly 工具中的任务
【发布时间】:2023-02-07 16:50:33
【问题描述】:

我知道 .NET 7 webAssembly 工具是实验性的,但有人可以解释为什么我不能 JSexport 任务吗? 我猜在这一点上(因为我用谷歌搜索了所有这些)这是因为它是实验性的,而且还不是所有类型都受支持,但这对我来说听起来很奇怪。 另外,当我尝试使用 IronBarcode 包时,出现错误,这让我想知道我们可以使用的包是否有限制,以及我们导出到 Js 的方法有什么限制?

Sample Image the code

【问题讨论】:

    标签: c# .net webassembly


    【解决方案1】:

    一般来说,任务是支持的,任务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 之间转换的,并查看支持和不支持的内容。

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-07
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多