promise,async,await进阶
例子1:
Promise的基本使用
let p = new Promise((resolve) => {
resolve("hello world");
})
p.then((data) => {
console.log(data);
})
其中,then中的形参为resolve中导出的数据。
例子2
async的基本使用
async function fun() {
return 1;
}
fun.then((data) => {
console.log(data);
})
其中,async函数返回的是Promise对象,需要通过then方法输出其内容。
例子1和例子2的意义相同
例子3
async加await可以获得p中resolve的内容,简化了then方法的使用
let p1 = new Promise((resolve) => {
resolve(1)
});
let p2 = new Promise((resolve) => {
resolve(2)
});
async function fun() {
let a = await p1;
let b = await p2;
console.log(a);
console.log(b);
}
fun();
总结:执行顺序
同步任务(包括new Promise和async function中的直接输出的内容console.log())
process.nextTick
异步微任务(promise.then())
异步宏任务(计时器,读取文件,ajax)
setImmidate