Xử lí callback hell trong Javascript
Bài đăng này đã không được cập nhật trong 6 năm
Welcome to callback hell
Code kiểu chọc mù mắt như thế này gọi là "callback hell"!
function foo(cb) {
cb();
}
function bar(cb) {
cb();
}
function olala(cb) {
cb();
}
function do_it(){
foo(function() {
bar(function() {
olala(function() {
console.log("aizz.... ==!");
})
})
})
}
"Để tránh callback hell, hãy sử dụng Promise...."
Ờ vậy thì ... welcome to Promise Hell
foo()
.then((something) => {
return bar(something)
.then((something) => {
return olala(something);
});
});
Promise được tạo ra không phải chỉ để xử lí callback hell mà là để khắc phục các thiếu sót của callback (còn tiếp). Sử dụng promise để xử lí callback hell mà không hiểu rõ bản chất sẽ mang lại code không kém phần tởm lợm như trên. Vậy thì phải làm sao?
Code cho sạch vô
....
function code_sach_dep() {
foo(thenBar);
}
function thenBar() {
bar(thenOlala);
}
function thenOlala() {
olala(function() {
console.log("done!");
})
}
Túm lại
Anh em có thể xử lí callback hell bằng cách viết code sạch sẽ tuần tự, thay vì lồng các function nối tiếp nhau.
Thanks for reading!
All rights reserved