Art*_*kel 5 javascript debugging async-await visual-studio-code
我一直在用Javascript中的Async/Await命令进行试验,并发现了一些我很困惑的事情.
当我在调试模式下在Visual Studio代码中运行以下代码时,在我到达第一个'await'代码行后,它跳转到函数的末尾,然后继续顺序执行其余代码,包括其他'await'行.为什么是这样?
const axios = require("axios");
const apiURL = 'https://jsonplaceholder.typicode.com/posts/1'
async function multipleRequestsAsync() {
try {
console.log("starting...")
const response1 = await axios.get(apiURL);
console.log(response1.data);
const response2 = await axios.get(apiURL);
console.log(response2.data);
const response3 = await axios.get(apiURL);
console.log(response3.data);
} catch (error) {
console.error(error);
}
}
multipleRequestsAsync();
Run Code Online (Sandbox Code Playgroud)
它可能表示函数返回承诺的点。如果您在调用之后包含一些其他代码,则在事件循环的未来轮次async function之后继续执行之前将逐步执行这些代码。await考虑
async function multipleRequestsAsync() {
try {
console.log("starting..."); // 3
const response1 = await axios.get(apiURL); // 4
console.log("done"); // 7
} catch (error) {
console.error(error);
}
} // 5
console.log("before start"); // 1
const promise = multipleRequestsAsync(); // 2
console.log("continuing..."); // 6
Run Code Online (Sandbox Code Playgroud)
你会得到输出
before start
starting...
continuing
// later:
done
Run Code Online (Sandbox Code Playgroud)
函数 (5) 末尾处的断点将出现在离开函数await(4) 和调用后的语句 (6) 之间。
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |