我正在尝试使用nodejs nodejs对我的个人api进行api调用。我希望能够在后台用我的数据库进行更新/更改时,在这个周期内同步更新某些值。我知道异步和等待是存在的,但是在我的googling中,我仍然不太理解它们或者它们是如何与获取请求交互的。
这是一个示例代码,我正在尝试工作,但仍然只是未定义的日志
const fetch = require('node-fetch');
const url = 'http://example.com';
let logs;
example();
console.log(logs);
async function example(){
//Do things here
logs = await retrieveLogs();
//Do more things here
}
async function retrieveLogs(){
await fetch(url)
.then(res => res.json())
.then(json => {return json})
.catch(e => console.log(e))
}
发布于 2018-09-03 08:57:44
我认为您需要返回这样的retrieveLogs函数结果:
async function retrieveLogs(){
return await fetch(url)
.then(res => res.json())
}
发布于 2020-05-13 13:19:06
正如Ali在评论中所说的那样,fetch()
是一个异步函数,无论如何都不能“同步”。如果您必须使用HTTP同步获取(例如,因为您必须在属性getter中使用它,而属性getter不能是异步的),那么您必须使用不同的HTTP客户端,即句号。
发布于 2021-03-09 14:22:50
npm install sync-fetch
围绕Fetch API的同步包装器。在引擎盖下使用节点-fetch,以及一些输入解析代码和测试用例。
https://stackoverflow.com/questions/52146053
复制相似问题