@SomeHuman2

Как синхронизировать асинхронною функцию?

Здравствуйте, я минимизирую css с помощью css-nano, однако он может работать только в асинхронном режиме.
Пример функции минимизации с использованием css-nano
const postcss = require("postcss");
const cssnano = require("cssnano");
const cssNanoPresetAdvanced = require("cssnano-preset-advanced");

let MINIFY_CSS = function (code) {
          postcss(cssnano({ preset: cssNanoPresetAdvanced }))
            .process(code)
            .then(function (result) {
              console.log(result.css);
            });
        },

использовать можно к примеру
MINIFY_CSS("html{background:green;}")
Однако проблемы начинаются когда я пытаюсь возвращать значение, а не просто выводить в консоль. Это необходимо для работоспособности цепочек кода к примеру
EXTRACT_CSS(MINIFY_CSS(require("!!raw-loader!sass-loader!./MyScss.scss")))

Моя попытка в виде
let MINIFY_CSS= function (code) {
          let minified;
          async () => {
            await postcss(cssnano({ preset: cssNanoPresetAdvanced }))
              .process(code)
              .then(function (result) {
                minified = result.css;
              });
          };
          console.log(minified);
          return minified;
        },

Выводит undefined, что значит что значение возвращается до завершения асинхронной функции и нечего не работает...
Как я могу улучшить свой код или синхронизировать асинхронною функцию?
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы