Работа с «ProtocolDeprecateCallback: аргумент обратного вызова API протокольных модулей больше не нужен» (Electron 7.0) - PullRequest
1 голос
/ 23 октября 2019

После обновления до Electron 7.0 я заметил следующее сообщение об устаревании:

(node:8308) ProtocolDeprecateCallback: The callback argument of protocol module APIs is no longer needed.

Код, о котором идет речь:

  await new Promise((resolve, reject) => {
    electron.protocol.registerBufferProtocol(MY_PROTOCOL,
      (request, callback) => {
        const uri = request.url;
        if (uri) {
          callback({ mimeType: 'text/plain', data: Buffer.from(uri) });
        }
        else {
          callback({ error: -324 }); // EMPTY_RESPONSE
        }
      },
      error => error? reject(error): resolve()
    );
  });

Как правильно звонить registerBufferProtocolтеперь, как Электрон 7?

1 Ответ

1 голос
/ 23 октября 2019

Мне потребовалось какое-то заметное время, чтобы понять, как правильно позвонить registerBufferProtocol с Electron 7.0, поэтому поделился этим с сообществом и моим будущим "Я". * document, registerBufferProtocol теперь синхронный, поэтому его вызов стал проще:

  electron.protocol.registerBufferProtocol(MY_PROTOCOL,
    (request, callback) => {
      const uri = request.url;
      if (uri) {
        callback({ mimeType: 'text/plain', data: Buffer.from(uri) });
      }
      else {
        callback({ error: -324 }); // EMPTY_RESPONSE
      }
    });

Запутанная (для меня) часть предупреждения состояла в том, что callback на самом деле не аргумент callback для handler, а точнее - последний completion аргумент, переданный самому API protocol.registerBufferProtocol.

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