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