等待Electron preload脚本中的异步回调

时间:2018-05-23 15:12:04

标签: javascript node.js electron

我正在尝试从默认会话中提取Cookie并将其添加到通过webview电子标记加载的网页中。所以我使用预加载脚本 - 比如

<webview src="http://localhost:3500" preload="./lib/my-preload.js"></webview>

我的预加载脚本如下所示

const { session } = require('electron').remote;


session.defaultSession.cookies.get({ name : 'templates' } , (error,cookies) => {
    console.log('RETURN');
    if(error)
        throw error;
    else{
        console.log(cookies[0].value );
        window.myTemplates = JSON.parse( cookies[0].value );

    }
});    

然而 - 永远不会达到异步回调。当我执行以下操作时,它允许我访问会话cookie

let getTemplates = (callbackFn ) => {
session.defaultSession.cookies.get({ name : 'templates' } , (error,cookies) => {
    if(error)
        throw error;
    else{
        callbackFn( cookies[0].value );

    }
});
};
window.getTemplates = getTemplates;

当我从webview页面脚本调用getTemplates函数时,它会按预期运行。 但是,我需要在加载任何其他脚本之前提供cookie。有没有办法强制nodejs等待 get 函数的异步回调在丢弃预加载脚本之前返回

0 个答案:

没有答案