Promise

1
2
3
4
5
fetch("https://xxx.com/post/1")
.then((response) => response.json())
.then((json) => console.log(json))
.catch((error) => console.error(error))
.finally(() => {});

这种写法跟函数式编程很相似了。

async

基于Promise之上的一个语法躺。 async声明一个function是异步的。

1
2
3
4
async function f() {
  return 1;
}
f().then((res) => console.log(res));

async函数会返回一个promise对象,如果function中返回的是一个值,async直接会用Promise.resolve()包裹一下返回。

await

await用于等待一个异步方法执行完成。

await会阻塞异步代码直到异步代码执行完成,对比Java就是future.get();