Пример BrowserWindow.capturePage () с использованием Promises? - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь обновить проект Electron v 4.xx до текущей версии Electron, и у меня зависает мозг в синтаксисе BrowserWindow.capturePage .

Способ, которым я захватывал страницу, ниже. Может кто-нибудь подсказать мне, как изменить его на использование синтаксиса обещания capturePage (или просто пример синтаксиса)?

Обновление: часто, задавая вопрос, уточняется вопрос. Кажется, это работает:

var img = await win.capturePage();

Существующий код

var win = BrowserWindow.fromId(test.windowID);
var img = await saveScreen(win, needNewPage)   
// do some stuff with the returned image

function saveScreen(win, needNewPage) {
  return new Promise(resolve => {
    win.capturePage((img) => {
      resolve(img)
    });
  });
}

1 Ответ

0 голосов
/ 22 января 2020

Это декларация capturePage от

Электрон v3.1.0

    /**
     * Captures a snapshot of the webview's page. Same as
     * webContents.capturePage([rect, ]callback).
     */
    capturePage(callback: (image: NativeImage) => void): void;
    /**
     * Captures a snapshot of the webview's page. Same as
     * webContents.capturePage([rect, ]callback).
     */
    capturePage(rect: Rectangle, callback: (image: NativeImage) => void): void;

И это от

Electron@latest (v7.1.8)

    /**
     * Resolves with a NativeImage
     *
     * Captures a snapshot of the page within `rect`. Omitting `rect` will capture the
     * whole visible page.
     */
    capturePage(rect?: Rectangle): Promise<Electron.NativeImage>;

Как вы можете видеть здесь, в несколько электронном варианте. Мы не можем использовать обратный вызов в функции capturePage. Таким образом, мы смогли получить изображение результата как параметр обратного вызова. Но из новой версии мы можем использовать только Promise.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...