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);

非常感谢。

此致

博尔哈

这已经在cefsharp 88版本中解决了: https://github.com/cefsharp/CefSharp/wiki/Advanced-Async-JavaScript-Binding-(JSB)/07c45fa962174d0476c4f2206f707365e9b11edd#javascript-callback-with-promise