【发布时间】:2021-11-29 15:02:30
【问题描述】:
我正在阅读 MDN,了解异步代码如何与 javascript 一起工作。他们提出了这个例子:
async function myFetch() {
let response = await fetch('coffee.jpg');
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
let myBlob = await response.blob();
let objectURL = URL.createObjectURL(myBlob);
let image = document.createElement('img');
image.src = objectURL;
document.body.appendChild(image);
}
myFetch()
.catch(e => {
console.log('There has been a problem with your fetch operation: ' + e.message);
});
函数 myFetch() 被定义,然后以 Promise 方式调用。函数究竟是如何执行的?这是一个异步函数,所以我假设它被赋予某个线程来执行而不干扰运行 Javascript 代码的单个线程? 同样在他们说的文档中等待是停止该行的代码直到完成?所以该函数不能由主应用程序线程执行,因为它不再是异步代码了? 所以这些是我的问题,我想在开始编写实际代码之前确定我理解这个机制。谢谢!
【问题讨论】:
标签: javascript asynchronous async-await