在JavaScript中,async-await是用来解决异步编程的问题的。当我们想要做一些异步的操作时,可以通过async-await来让代码看起来更像同步代码。
使用async-await就会自动地将异步操作转换成Promise并等待Promise返回结果,所以我们可以像同步代码那样编写代码。如果在async函数中出现了await语句,就会让整个函数暂停直到async函数中的那个Promise对象被resolved或rejected。
下面是一个使用async-await的例子:
function fetchData(url) {
return new Promise(resolve => {
setTimeout(() => {
resolve(`Data from ${url}`);
}, Math.floor(Math.random() * 1000));
});
}
async function foo() {
const result1 = await fetchData('http://example.com/data1');
console.log(result1);
const result2 = await fetchData('http://example.com/data2');
console.log(result2);
}
foo();
在这个例子中,fetchData函数返回一个Promise对象,并在一定时间后(0~1000ms)resolve这个Promise。foo函数中使用了两个await语句来等待两个数据的返回结果。在等待期间,整个函数会暂停执行,并执行其他的任务。直到Promise对象被resolved之后,函数才会继续执行。这就是async-await的简单使用方法。