我正面临一个困惑,希望能有一些澄清或参考文章来解释在以下代码片段中观察到的行为.
const p1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Promise Resolved Value!!");
}, 20000);
});
const p2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Promise Resolved Value!!");
}, 10000);
});
async function handlePromise() {
try {
console.log("Hello World!!");
const val = await p1;
console.log("Namaste JavaScript");
console.log(val);
const val2 = await p2;
console.log("Namaste JavaScript 2");
console.log(val2);
} catch (error) {
console.error("Error:", error);
}
}
handlePromise();
在本例中,程序打印"Hello World!!"然后等待20秒.等待时间过后,p1和p2部分同时打印.我在试着理解为什么两个promise 都要同时执行.
但
对于这段代码
const p1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Promise Resolved Value!!");
}, 10000);
});
const p2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Promise Resolved Value!!");
}, 20000);
});
async function handlePromise() {
try {
console.log("Hello World!!");
const val = await p1;
console.log("Namaste JavaScript");
console.log(val);
const val2 = await p2;
console.log("Namaste JavaScript 2");
console.log(val2);
} catch (error) {
console.error("Error:", error);
}
}
handlePromise();
在这个场景中,在打印"Hello World!!"之后,程序会在20秒延迟后打印p1部分,然后在10秒延迟后打印p2部分.我正在为这一特定的时机行为寻求解释.
任何关于解释JavaScriptpromise 的底层异步性质的文章的见解或参考都将非常有帮助.谢谢!
试图寻求对多重promise 行为的解释,异步等待