简介:
js代码的执行顺序是自上而下,异步执行。
有时候,下面的代码需要用到上面代码的返回值,这时候就需要把执行顺序变成同步执行。
async await同步执行:
async initList() {
let queryList = async (time) => {
console.log('queryList函数--');
return await new Promise((resolve, reject) => {
console.log('Promise方法--');
let timeout = setTimeout(() => {
console.log('setTimeout定时器--');
resolve(999);
clearTimeout(timeout); // 清除定时器,防止内存泄漏
}, time)
})
}
console.log('接口调用前--');
// 此处模拟接口调用
let res = await queryList(2000);
console.log('res同步--', res);
},
js默认异步执行:
initListDefault() {
let queryList = (time) => {
console.log('queryList--异步');
return new Promise((resolve, reject) => {
console.log('Promise方法--异步');
let timeout = setTimeout(() => {
console.log('setTimeout--异步');
resolve(999);
clearTimeout(timeout); // 清除定时器,防止内存泄漏
}, time)
})
}
console.log('接口调用前--异步');
// 此处模拟接口调用
let res = queryList(2000);
console.log('res默认--异步', res);
},