我正在使用异步功能,但是它不能按照我想要的方式工作。 即使它是异步的,它也会冻结我的UI。
在我的控制台中,我有该日志:
我期望以下行为:
这是我的代码
var DLL_WhileDosiDeconnected = edge.func({
assemblyFile:'Calculate.dll',
typeName:'Dosimetre.Startup',
methodName:'WhileDosiDeconnected',
sync:false
});
ipcRenderer.on ('WhileDosiDeconnected', (event, message) => {
console.log("Start WhileDosiDeconnected");
function test_dosi_deco(input){
return new Promise(resolve =>{
DLL_WhileDosiDeconnected(input, function (error, result) {
console.log("DLL call");
resolve(result);
});
})
}
async function f(){
console.log("start of f");
const result = await test_dosi_deco("test");
console.log("end of f");
return result;
}
f("test").then((result)=>{
console.log("then of f");
let mainWindow = remote.getGlobal ('mainWindow');
if (mainWindow) mainWindow.webContents.send ('dosimetreDetecte', result);
});
console.log("END WhileDosiDeconnected");
});
我想念什么?
注意:我使用Electron 3.0.4和electronic-edge-js 8.3.8,但我不认为这与之相关