CefSharp Javascript 回调从未 return 解决承诺
CefSharp Javascript Callback never return resolved promise
首先,请原谅我的英语,它很糟糕。我在 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);
非常感谢。
此致
博尔哈
首先,请原谅我的英语,它很糟糕。我在 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);
非常感谢。
此致
博尔哈