Я знаю, что электрон работает над обещанием своих вызовов api, но я думаю, что тем временем нашел решение, однако оно не совсем работает.
В моей функции создания окна у меня есть следующее ...
const mainSession = mainWindow.webContents.session
const getCookies = util.promisify(mainSession.cookies.get)
const cookies = await getCookies({})
console.info(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.info(cookies)
} catch(err) {
console.info(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)
При использовании await кто-то должен обнаруживать ошибки либо с помощью .catch() в возвращаемом значении из содержащей функции, либо с помощью try/catch вокруг await. Вам нужно будет показать нам больше вашего кода, чтобы мы могли точно определить, что вам следует делать и откуда эта ошибка.
Спасибо! Я только что добавил соответствующий код. Я предполагаю, что реальный вопрос, который я хочу задать, заключается в том, как мне обрабатывать синхронный захват файлов cookie в электронном виде?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


awaitНЕ синхронный. Вы вроде как запрограммируете его с помощью синхронно выглядящего кода, но это не синхронно. Пока он ожидает, функция хоста возвращается, и выполняется другой код. Это асинхронный, просто другой способ асинхронного программирования.