Promise详解

官方文档

Promise A+ 规范
async 函数

常见问题

  1. 异步函数不一定就会异步执行,主要看里面有没有异步的地方,比如 setTimeout,比如 http 请求,比如 indexedDB 请求
  2. 函数返回 Promise 对象,不一定就要写 async,除非里面用了 await
  3. async 是 Promise 的等价简写,不必再多写一个return new Promise
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function resolveAfter2Seconds() {
return new Promise((resolve) => {
setTimeout(() => {
resolve("resolved");
}, 2000);
});
}

async function asyncCall() {
console.log("calling");
const result = await resolveAfter2Seconds();
console.log(result);
// Expected output: "resolved"
}

asyncCall();