XuanchenLin / NanUI

NanUI is an open source .NET project for developers who want to create Windows desktop applications with HTML, CSS and JavaScript.

Home Page:https://github.com/Xuanchenlin/NanUI

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[问题]请问winfrom中如何同步调用js中异步方法,获取返回值

zhouge870103 opened this issue · comments

NanUI/Formium版本
NanUI/Formium Version
0.9.90.76

操作系统 / Windows Version
win10

问题描述 / QUESTION
async function xxxx() { ******** ******** return await test() }
请问winfrom中如何同步调用js中异步方法,获取返回值
感谢~~~

如果只是想把值传回来,那么请在C#端注册接收数据的JavaScript方法接口,比如 sendToCSharp。

那么你的方法可以改为:

async function xxx() {
const retval = await test()l
sendToCSharp(retval);
}

NanUI的ExecuteJavaScript和EvaluateJavaScriptAsync实质上都是异步的,因为CEF采用多进程模型,而JS执行在渲染层,所以每次调用JS方法时,其实都是把JS代码异步传递到了渲染进程,然后由渲染进程执行后把结果又异步返回到浏览器进程,这个过程是无法实现同步的。你可以把这个过程看作HTTP协议的那种通信方式。

NanUI目前受制于框架模型已经本人的能力,因此并没有完美的实现JavaScript和C#之间的通信,因此实际业务中也需要根据这些限制来调整前端代码。