【发布时间】:2020-11-26 08:35:04
【问题描述】:
首先,对不起,我的英语很糟糕。我在 WinForms 应用程序中使用 CefSharp 在导航器和 .NET 代码之间进行通信。
我正在尝试使用 CefSharp 在异步回调函数中解决一个承诺,但在返回给 .Net 的响应中,我从未得到已解决承诺的响应,而是一个似乎代表所述承诺消费者的对象(最后,抓住,然后)。
有没有办法解决这个问题?
我留下一个例子,希望能帮助你理解问题。
//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);
非常感谢。
问候
博尔哈
【问题讨论】:
-
IJavascriptCallback 目前不支持解析承诺。 CEF 对 Promise 没有一流的支持。
-
感谢您的回复。你能想出一个解决方法吗?
-
一个选项是在 promise 被解决后调用一个方法。如果你有一个真实的例子会有所帮助,
标签: javascript .net winforms cefsharp chromium-embedded