我正在尝试从默认会话中提取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 函数的异步回调在丢弃预加载脚本之前返回