Каковы преимущества asyn c версий API jws? - PullRequest
1 голос
/ 02 февраля 2020

jws предлагает как syn c, так и asyn c версии нескольких функций, которые он предоставляет.

Какая asyn c работа выполняется в asyn c версии?

Например, вот как используется createSign:

jws.createSign({
  header: { alg: 'RS256' },
  privateKey: privateKeyStream,
  payload: payloadStream,
}).on('done', function(signature) {
  // ...
});

Из просмотра источника и зависимостей я могу не понял это. Некоторые причины для создания асинхронного API c:

  • , чтобы не буферизовать ввод в память

  • для разгрузки работы на работника

  • для реализации части функциональности в Wasm

Я не смог найти ничего из этого происходящего.

Ядро похоже, что работа происходит в jwa, который, насколько я могу судить, является синхронным:

const signature = hmac.sign(input, secret);
hmac.verify(input, signature, secret) // === true;

Есть ли потоковый API там просто для удобства, когда ввод читаемый поток вместо строки? Эффективно ли то же самое, что (псевдокод): streamToPromise(readableStream).then(str => createSignSync(str))? Или есть подлинная асин c работа, которую jws делает для нас, что я как-то скучаю?

...