Node.js является однопоточным, поэтому вам следует избегать создания таких функций, как эта синхронизация. Вероятно, вы можете просто выполнить свой код в функции обратного вызова.
const ImageMagick = require('imagemagick');
ImageMagick.convert(
[
source,
path_to
],
function(err, stdout){
// the next code performed only after image convertion will be done
});
Или вы можете использовать Promise и await, но тогда вся ваша функция будет асинхронной
const ImageMagic = require('imagemagick');
function convertImage(source, path_to){
return new Promise((resolve, reject) => {
ImageMagick.convert(
[
source,
path_to
],
function(err, stdout){
if(err) {
reject(err)
}
resolve(stdout);
});
})
}
async function doStuff(){
// start the image convert
let stdout = await convertImage(source, path_to);
// now the function will go on when the promise from convert image is resolved
// the next code performed only after image convertion will be done
}