CefSharp Javascript回调永远不会返回已解决的承诺



首先,对不起,我的英语很差。我在WinForms应用程序中使用CefSharp进行导航器和.NET代码之间的通信。

我试图用CefSharp在异步回调函数中解析promise,但在返回到.Net的响应中,我从未得到解析的promise的响应,而是一个似乎代表所述promise的消费者的对象(最后,catch,然后(。

有什么办法解决这个问题吗?

我留下一个例子,希望能帮助你理解这个问题。

//C#代码

public void TestCallback(IJavascriptCallback javascriptCallback)
{
const int taskDelay = 1500;
Task.Run(async () =>
{
await Task.Delay(taskDelay);
using (javascriptCallback)
{
var result = await javascriptCallback.ExecuteAsync();
//result is a JavaScriptResponse, but property "Result" is not "user" object, is a dictionary object with 'then', 'catch', 'finally' keys. 
}
});
}

//JS代码

function async MyCallback()
{
// read our JSON
let response = await fetch('/article/promise-chaining/user.json');
let user = await response.json();
return user;
}
boundAsync.testCallback(MyCallback);

非常感谢。

问候

Borja

这个问题现在已经在cefsharp的88版本中得到解决:https://github.com/cefsharp/CefSharp/wiki/Advanced-Async-JavaScript-Binding-(JSB(/07c45fa962174d0476c4f2206f707365e9b1edd#带promise 的javascript回调

最新更新