возможно ли в функции дождаться ресолва помиса?

подскажите, возможно ли в функции дождаться ресолва помиса? у меня есть такой код для преобразования файлов

async function convertToConstantBitrate(dir = "/home/jsdev/Music/", mp3track = 'ida.mp3') {
    const encoder = new Lame({
        output: dir + 'out/' + mp3track,
        bitrate: 128
    }).setFile(dir + mp3track);

    encoder
        .encode()
        .then(() => {
            console.log('finished')
        })
        .catch(error => {
            console.log(error)
        });
}

хотелось бы, чтобы возврат из функции просиходил только когда, файл будет сконвертирован. делаю десктопное приложение и время выполнения в нем не критично, важнее простота кода


Ответы (1 шт):

Автор решения: Alexey Ten

Ну коли уж функция объявлена как async, то используйте await:

async function convertToConstantBitrate(dir = "/home/jsdev/Music/", mp3track = 'ida.mp3') {
    const encoder = new Lame({
        output: dir + 'out/' + mp3track,
        bitrate: 128
    }).setFile(dir + mp3track);

    try {
        await encoder.encode();
        console.log('finished');
    } catch(error) {
        console.log(error);
    }
}
→ Ссылка