1.回调地狱
回调地狱,什么是回调地狱? 回调地狱就是 在按顺序执行异步的代码,看以下代码,代码越多越像 v 所以简称回调地狱
//回调地狱
setTimeout(() => {
console.log(1);
setTimeout(() => {
console.log(2);
setTimeout(() => {
console.log(3);
setTimeout(() => {
console.log(4);
}, 1000)
}, 1000)
}, 1000)
}, 1000)
2.promise
promise是为了 解决 回调地狱 而产生的 ,个人 不推荐使用 ,因为promise虽然解决了回调地狱,但是代码还是一样多 ,推荐使用 async
//通过 promise解决 回调地狱 , 但是代码还是多 async 和 await解决
const a = (sum, con) => {
return new Promise(
(r, s) => {
setTimeout(() => {
console.log(111);
r(con);
}, sum)
}
)
}
a(100, '你好世界').then(
function(r) {
console.log(r);
}
);
a(1000, '你好').then(
function(r) {
console.log(r);
}
);
3. async 异步函数 和 await
async 异步函数 ,也可以实现,按顺序执行异步代码, 代码量也很少, 很完美的解决的了 回调地狱
//通过异步函数来解决promise的代码量
const a = async(sum, con) => {
await setTimeout(() => {
console.log(con);
}, sum);
}
a(100, '哈哈哈')
a(100, '哈哈哈')
a(100, '哈哈哈')