这是代码
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
(而不是 array [repo1, repo2, repo3]
)。
我希望数组在记录“Calling Api for Zain”后返回,但undefined
它显示在它之前,但我不知道为什么,所以我需要这方面的帮助。