🎬 江城开朗的豌豆:个人主页
🔥 个人专栏 :《 VUE 》 《 javaScript 》
⛺️ 生活的理想,就是为了理想的生活 !
目录
📘 1. 引言
📘 2. 使用方法
Async/await的使用方法非常简单明了,主要涉及两个关键字:async和await。
下面是一个示例,展示了Async/await的使用方法:
async function getData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
} catch (error) {
console.error('Error:', error);
throw error;
}
}
getData()
.then(data => console.log('Data:', data))
.catch(error => console.error('Error:', error));
📘 3. 实现原理
function promiseFn() {
return new Promise((resolve) => {
setTimeout(() => {
resolve('promise resolved');
}, 2000);
});
}
function* genFn() {
let result = yield promiseFn();
console.log(result);
}
function asyncToGenerator(generator) {
let gen = generator();
return new Promise((resolve, reject) => {
function step(key, arg) {
let result;
try {
result = gen[key](arg);
} catch (error) {
return reject(error);
}
const { value, done } = result;
if (done) {
return resolve(value);
} else {
return Promise.resolve(value).then(val => {
step('next', val);
}, err => {
step('throw', err);
});
}
}
step('next');
});
}
asyncToGenerator(genFn);
📘 4. 写到最后