[英]Getting Promise pending ..- ES6
我试图在一个函数中捕获两个服务调用的响应。 知道 async 和 await 将解决这个目的并在下面尝试。 在 async 函数内部,ex - 我正在向用户、公司端点和控制台日志发出呼叫,显示完美,但是通过调用 async 函数检索相同的值时,会给出 Promise Pending。 我尝试了两个选项 1. 通过简单地调用异步函数 - 给予 Promise Pending 2. 通过以 await 前缀调用 - 给予 await 是一个保留字。
请让我知道如何从这里捕获响应......
const service = {
getUsers: () => axios.get(`http://localhost:3000/users`),
getCompanies: () => axios.get('http://localhost:3000/companies')
};
let ex = async () => {
let users = {};
let companies = {};
try {
users = await service.getUsers()
companies = await service.getCompanies()
console.log('Example ', {
users: users.data,
companies: companies.data
})
} catch (err) {
console.log(err);
}
return { users, companies};
};
//let resp = await ex(); - Giving await is a key word
let resp = ex(); - Giving Promise pending
console.log(resp);
async
/ await
不会神奇地允许您同步执行异步操作。 无论你如何削减它,你仍然不得不在某个时候等待价值。
所以你有两个选择。
let ex = async () => {
let users = {};
let companies = {};
try {
users = await service.getUsers()
companies = await service.getCompanies()
// DO STUFF WITH users AND companies HERE
} catch (err) {
console.log(err);
}
}
ex()
返回的承诺上调用.then
并使用返回的值:ex().then(values => {
console.log(values);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.