@tantumus21

Объясните, что происходит во фрагменте кода?

function loginUser(email, password, callback) {
    setTimeout(() => {
        console.log("Now we have the data");
        callback({ userEmail: email });
    }, 3000);
}

function getUserVideos(email, callback) {
    setTimeout(() => {
        callback(['video1', 'video2'])
    }, 1000)
}

const user = loginUser('developer@gmail.com', 123456, cb => {
    console.log(cb);
    getUserVideos(cb.userEmail, (videos) => {
        console.log(videos);
    })
});


Насколько я понимаю:
1) на точке входа const user = loginUser в callback функции loginUser передается стрелочная функция
2) запускается функцияloginUser
3) через 3 секунды срабатывает console.log("Now we have the data");
4) и следом запускается callback функция с объектом в качестве аргумента
5) при запуске callback первым делом срабатывает console.log(cb);

и вот здесь мне непонятно...
  • что происходит, когда для вывода в консоль передается не строка, а функция? Как получается, что по итогу в консоли я вижу { userEmail: 'developer@gmail.com'}?
  • и откуда в строке getUserVideos(cb.userEmail, (videos) => { берется свойство userEmail, если функции cb его никто не присваивал?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
E1ON
@E1ON Куратор тега JavaScript
web, gamedev, anime, science
Вот же вы передаёте email в калбек:

callback({ userEmail: email });

В консоль лог вы выводите обьект, аргумент калбека, тот самый который передали выше:
console.log(cb);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы