aadsm / jsmediatags

Media Tags Reader (ID3, MP4, FLAC)
Other
745 stars 128 forks source link

Как вернуть результат асинхронной функции? #121

Open the-alex-mark opened 4 years ago

the-alex-mark commented 4 years ago

Привет, в JS я новичёк, мог не правильно задать вопрос. Если я правильно понял твоя функция асинхронная, когда я пытаюсь получить её результат я получаю "undefined".

function Title(_file) {
    let ID3 = window.jsmediatags;
    ID3.read(_file, {
        onSuccess: function(ID3v2)  {
            return (ID3v2.tags.TIT2) ? ID3v2.tags.TIT2.data : ""
        }
    });
}

Есть ли способ как то получить данные или может преобразовать функцию в синхронную?

BANOnotIT commented 4 years ago

Результат этой функции получить нельзя. Потому что функция называется колбеком (callback). Советую почитать про использование в nodejs любого модуля, например fs или http. Там все на колбеках и как раз будет понятно чем асинхронная функция отличается от колбека.

Хотя лучшим примером различия будет fetch и XHR. По факту одно и тоже, но один использует асинхронность через промисы, а другой через колбеки.