Вот код
console.log("Before");
const p = getUser(1);
p.then(user => {
console.log(user);
getRepositories(user.github);
}).then(repos => {
console.log(repos);
});
console.log("after");
function getUser(id) {
return new Promise(function(resolve, reject) {
setTimeout(() => {
console.log("Calling a database " + id);
resolve({ id: id, github: "Zain" });
}, 2000);
});
}
function getRepositories(username) {
return new Promise(function(resolve, reject) {
setTimeout(() => {
console.log(`Calling Api for ${username}`);
resolve(["repo1", "repo2", "repo3"]);
}, 2000);
});
}
У меня проблемы с использованием обещания, возвращаемого функцией getRepositories()
. Выше моя реализация, но она не работает и возвращает undefined
(вместо массива [repo1, repo2, repo3]
).
Вот вывод:
![enter image description here](https://i.stack.imgur.com/gHUq4.png)
Я хочу, чтобы массив возвращался после записи в журнал «Вызов Api для Zain», но undefined
отображается перед это, но я не знаю почему, поэтому мне нужна помощь в этом.