6

我正在尝试从默认会话中获取 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函数的异步回调返回

4

0 回答 0