gpt4 book ai didi

javascript - 获得待定的 promise ..- ES6

转载 作者:行者123 更新时间:2023-11-29 21:00:07 26 4
gpt4 key购买 nike

我正在 try catch 函数内两个服务调用的响应。知道 async 和 await 将解决这个目的并在下面尝试。在异步函数 ex 中 - 我正在调用用户、公司端点和控制台日志显示完美,但是通过调用异步函数检索相同的值时给出了 Promise Pending。我尝试了两种选择1. 通过简单地调用异步函数——给出 Promise Pending2. 通过带有 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 并不能神奇地让您同步执行异步操作。无论如何削减它,您最终还是不得不等待某个时刻的值(value)。

所以你有两个选择。

  1. 将你想用检索到的值做的事情放在异步函数中:
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);
}
}
  1. 根据 ex() 返回的 promise 调用 .then 并使用返回值:
ex().then(values => {
console.log(values);
});

关于javascript - 获得待定的 promise ..- ES6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46968721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com