[问题]请问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#之间的通信,因此实际业务中也需要根据这些限制来调整前端代码。