Показать сообщение отдельно
  #4 (permalink)  
Старый 17.11.2022, 12:34
Кандидат Javascript-наук
Отправить личное сообщение для mik888em Посмотреть профиль Найти все сообщения от mik888em
 
Регистрация: 21.06.2020
Сообщений: 145

Сообщение от Aetae Посмотреть сообщение
Ставлю палку колбасы, что не пустая, а там лежит Promise.
Советую изучить https://learn.javascript.ru/async.
Без понимания асинхронности в javascript ты никуда не уедешь и будешь спотыкаться на каждом шагу.

Примерно так оно должно выглядеть в плоском виде:
const webp = require('webp-converter');
const fs = require('fs').promises;

async function getWebpBase64(path) {
  const data = await fs.readFile(path);
  const buf = Buffer.from(data);
  const dataBase64 = Buffer.from(buf).toString('base64');
  // base64str of image
  // base64str image type jpg,png ...
  //option: options and quality,it should be given between 0 to 100
  return webp.str2webpstr(dataBase64, 'jpg', '-q 80');
}

async function main() {
  // тут весь код, вне main ничего кроме других деклараций функций ничего быть не должно

  const path = [[PYT]];
  
  const result = await getWebpBase64(path);
  console.log(result);
  
  [[ITOG]] = result;
}

main();


Вообще либа явно написана каким-то залётным хреном, мало что понимающем в js, так что может и вообще не работать. Но проверять мне лень.)
Запустил но [[ITOG]] - пустой(
Попробовал экранировать слеши в пути. В перем [[PYT]] поставил:
C:/\Users/\username/\Downloads/\777/\1c.jpg


Но [[ITOG]] - пустой

const webp = require('webp-converter');
const fs = require('fs').promises;

async function getWebpBase64(path) {
  const data = await fs.readFile(path);
  const buf = Buffer.from(data);
  const dataBase64 = Buffer.from(buf).toString('base64');
  // base64str of image
  // base64str image type jpg,png ...
  //option: options and quality,it should be given between 0 to 100
  return webp.str2webpstr(dataBase64, 'jpg', '-q 80');
}

async function main() {

  const path = [[PYT]];
  
  const result = await getWebpBase64(path);
  console.log(result);
  
  [[ITOG]] = result;
}

main();
Ответить с цитированием