javascript - 同步获取cookies
问题描述
我知道电子正在努力承诺他们的 api 调用,但我认为我同时找到了一个解决方案,但是它并不完全有效。
在我的创建窗口函数中,我有以下...
const mainSession = mainWindow.webContents.session
const getCookies = util.promisify(mainSession.cookies.get)
const cookies = await getCookies({})
console.log(cookies)
我相信它在基于我得到的这个错误解决承诺之前破坏了对象。
(node:21863) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Object has been destroyed
我需要同步 cookie 的原因是因为我正在为我的canvasFileSync应用程序构建一个登录方法来生成一个长期访问令牌(以验证同步)。该方法必须具有足够的动态性以适用于任何学校的登录页面,在该页面中,它基本上会“不断尝试”制作长期访问令牌,直到成功。
我想你可以想象使这个同步真的会简化这个过程。
任何帮助或指示将不胜感激!
编辑:添加了所有相关代码
const electron = require('electron')
const util = require('util')
const _ = require('lodash')
const request = require('request-promise')
// Module to control application life.
const app = electron.app
// Module to create native browser window.
const BrowserWindow = electron.BrowserWindow
const path = require('path')
const url = require('url')
let mainWindow
async function createWindow () {
// Create the browser window.
mainWindow = new BrowserWindow({width: 800, height: 600})
// and load the index.html of the app.
mainWindow.loadURL('https://suu.instructure.com')
mainWindow.on('closed', function () {
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
mainWindow = null
})
try {
const mainSession = mainWindow.webContents.session
const getCookies = util.promisify(mainSession.cookies.get)
const cookies = await getCookies({})
console.log(cookies)
} catch(err) {
console.log(err)
}
}
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', createWindow)
解决方案
推荐阅读
- apache-kafka - Kafa:Kafka 如何为每个消费者组存储和检索偏移量?
- delphi - 如何剪切 TStringStream 的最后 N 个字符?
- angular - Angular 的 HttpClient.get() 的承诺什么时候会被拒绝?
- javascript - 我的脚本正在发送错误:连接 ETIMEDOUT?
- node.js - node-spider 等待延迟加载内容
- python - python setup.py sdist error 此项目的版本控制需要 sdist tarball,或访问上游 git 存储库
- redis - 如何在 Ubuntu 上为 ARM 交叉编译 redis?
- css - 如何在无效日期更改 ion-datetime 中下划线的颜色?
- python - OneHotEncoder 类别参数
- android - 为什么在 RecyclerView findViewByPosition() 在 EditText 上返回 null