[英]async/await not working in NodeJS, it doesn't wait
我在 NodeJS 中使用 Axios 調用 2 REST API 端點。我試圖讓代碼逐行執行,但第二個( viewProfile()
)function 不等待generateId();
const generateId = async (data) => {
const options = optionsBuilder("post","profile", data);
try {
const response = await axios(options);
id = response.data.id;
console.log(id);
} catch (error) {
console.error(error);
}
}
const viewProfile = async (profileId) => {
console.log('Test 2', profileId);
const path = `blog/${profileId}`;
const options = optionsBuilder("get", path);
try {
const response = await axios(options);
console.log(response.data);
} catch (error) {
console.log(error);
}
}
}
...
generateId(data);
viewProfile(profileId);
您必須將它們執行到異步 scope 中:
(async function(){
await generateId(data);
await viewProfile(profileId);
})()
否則它們不會被解析為等待並且viewProfile
將在generateId
之后立即執行。 :)
因為,如果您使用的是新的 ES2022,您可以
await
進入頂層。
對於較新的 Node.js 版本:
await generateId(data);
await viewProfile(profileId);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.