Qt 只有来自C++;美国石油学会 我正在用一个HTML的C++应用程序工作。 P>WebKIT,可以从C++对象中同步调用C++ API。javascript中的逻辑很清楚 但是,WebChannel,C++对象的每个API调用都是异步的。如果我们从asyn调用中得到一个object-B作为返回值,那么object-B的API调用也是异步的。这不仅大大增加了代码的复杂性,而且逻辑也很难维护

Qt 只有来自C++;美国石油学会 我正在用一个HTML的C++应用程序工作。 P>WebKIT,可以从C++对象中同步调用C++ API。javascript中的逻辑很清楚 但是,WebChannel,C++对象的每个API调用都是异步的。如果我们从asyn调用中得到一个object-B作为返回值,那么object-B的API调用也是异步的。这不仅大大增加了代码的复杂性,而且逻辑也很难维护,qt,qtwebchannel,Qt,Qtwebchannel,考虑以下代码: new QWebChannel(qt.webChannelTransport, function (Channel) { var jsObject = Channel.objects.external; jsObject.RegisterClient("clientname", 0, function(Handle) { jsObject.ConfigureClient(Handle, function (clientObjec

考虑以下代码:

new QWebChannel(qt.webChannelTransport, function (Channel) {
    var jsObject = Channel.objects.external;
    jsObject.RegisterClient("clientname", 0, function(Handle) {
        jsObject.ConfigureClient(Handle, function (clientObject) {
            clientObject.getItems(function (items) {
                for (int i = 0; i < items.size(); i++)
                {
                    items[i].calculateValue1(function (value) {
                        **// update value. Here value of 'i' will be out of over 'item.size()'.**
                        items[i].calculateValue2(function (value) {
                            // update value
                        });
                    });
                }
        });
    }); // this is asynchronous
});
新的QWebChannel(qt.WebChannel传输,功能(频道){
var jsObject=Channel.objects.external;
RegisterClient(“clientname”,0,函数(句柄){
ConfigureClient(句柄、函数(clientObject){
clientObject.getItems(函数(项){
对于(int i=0;i
首先,从webkit迁移现有代码需要做大量工作。其次,如粗体所示,for循环已中断


<> P>是否有一个可供选择的解决方案?除了QT5.15和以上的WebChank之外,还有什么东西可以使用吗?

< P>联系Qt支持,不幸的是没有解决这个问题。所有的WebChank的C++ API调用都在另一个进程中处理,因此不可能像WebKIT一样同步。