Kỹ thuật Đồng bộ/Bất đồng bộ trong Jquery Ajax với promise

Hôm nay có việc gọi Ajax để xử lý data. Cơ mà trớ trêu lại dính vụ đồng bộ, bất đồng bộ của Javascript. Từng quen mặt nó mấy lần nhưng chưa bao giờ mình thực sự tìm hiểu về nó. Nay quyết tâm giải quyết đến nơi với nó @@

Tìm tài liệu thì thấy được bài hướng dẫn sau rất hay, và Ok

https://viblo.asia/p/ky-thuat-dong-bo-bat-dong-bo-trong-ajax-MgNeWXxEkYx

Tuy nhiên, thuộc tính async: false khi thêm vào hàm Ajax đã bị Chrome chặn rồi.

Do vậy, chúng ta sử dụng cách promise nhưng phần sau của hướng dẫn, và mình đã thành công^^

function ajax_gen_chart(idtram,iddata){
var k=$.Deferred();
$.ajax({
//async: false,
method: “GET”,
url: ‘getdata4chart_v2.php?idtram=’+idtram+’&data=’+iddata
}).done(function(data){
datare=JSON.parse(data);
k.resolve();
});
return k.promise();
}

Sau đó là gọi nó ra

ajax_gen_chart(1,1).done(function(){
console.log(datare);
});

Nguyên văn bài viết