同步:
A任务完成→B任务完成→C任务完成
异步:
A任务开始→
B任务开始→ ABC执行中 → ABC哪个执行快输出的结果就快
C任务开始→
同步代码:
//方法1,结果(任务1-任务2-任务3-任务4-任务5-任务6))
async c() {
await new Promise((resolve, reject) => { console.log("任务1"), resolve() })
console.log('任务2')
await new Promise((resolve, reject) => { setTimeout(() => { resolve(console.log("任务3")) }, 1000) })
await new Promise((resolve, reject) => { console.log("任务4"), resolve() })
console.log('任务5')
await new Promise((resolve, reject) => {console.log("任务6"), resolve() })
}
//方法2,结果(任务1-任务2-任务3-任务4)
function do1() {
return new Promise((resolve, reject) => {
console.log("任务1"), resolve() })
}
function do2() {
return new Promise((resolve, reject) => {
setTimeout(() => { resolve(console.log("任务2")) }, 1000) })
}
function do3() {
return new Promise((resolve, reject) => {
console.log("任务3"), resolve() })
}
function do4() {
return new Promise((resolve, reject) => {
console.log("任务4"), resolve() })
}
async function mainWithAsync() {
await do1()
await do2()
await do3()
await do4()
}
//方法3,结果:(任务1-任务2-任务3)
fun1() {
console.log("任务1");
let p = new Promise((resolve) => {
setTimeout(() => { console.log("任务2"); resolve(); }, 1000)
})
p.then(() => {console.log("任务3");})
},
//方法4,结果:(任务1-任务2-任务3)
async fun2() {
console.log("任务1");
let p = new Promise((resolve) => {
setTimeout(() => {console.log("任务2");resolve();}, 1000)
})
await p
console.log("任务3");
}
异步代码:
//方法1,结果:任务1-任务3-任务4-任务2
d() {
console.log('任务1')
setTimeout(() => { console.log('任务2') }, 2000);
console.log('任务3')
setTimeout(() => { console.log('任务4') }, 1000);
}