
#javascript #jquery Czesc, mam problem z callbackami w moim programie, a na stacku oznaczyli mi temat jako duplicate, tyle ze nie ogarniam orginału bo nie ma przykladowego kodu i dalej mi nie działa.
function loadSupportList(callback) { //2x jedno loadPageContent drugie loadSupportList
var url = url;
showCurtain();
$.post(url, {
userId : userId,
sessionId : sessionId,
success: callback
}).done(function(data) {
if (data['success'] == true) {
callback(data['tasks']);
} else {
console.log("Error: " + data['error']);
}
}).fail(function() {
console.log("Unknown error.");
})
}
function create(){
loadProjects();
loadUsers();
var htmltask = "";
var html = "";
loadPageContent(function(tasks){
htmltask = whatStatus(tasks); //whatStatus zwraca htmla
});
loadSupportList(function(tasks){
html = support(tasks); //support zwraca htmla
});
$("#devtask-table").html(titleDraw() + "" + htmltask + html + "");
}
Jak to zrobić żeby działało?
function loadSupportList(callback) { //2x jedno loadPageContent drugie loadSupportList
var url = url;
showCurtain();
$.post(url, {
userId : userId,
sessionId : sessionId,
success: callback
}).done(function(data) {
if (data['success'] == true) {
callback(data['tasks']);
} else {
console.log("Error: " + data['error']);
}
}).fail(function() {
console.log("Unknown error.");
})
}
function create(){
loadProjects();
loadUsers();
var htmltask = "";
var html = "";
loadPageContent(function(tasks){
htmltask = whatStatus(tasks); //whatStatus zwraca htmla
});
loadSupportList(function(tasks){
html = support(tasks); //support zwraca htmla
});
$("#devtask-table").html(titleDraw() + "" + htmltask + html + "");
}
Jak to zrobić żeby działało?
- Najlepsze
- Wszystkie komentarze







$.post( { dane... , success: [co ma sie wydarzyc gdy dojdzie do skutku] } );
albo dajesz
$.post(
to przenieś sobie do osobnej metody i wywołaj to w dwóch funkcjach "success":
function updateHtml() {
$("#
program nie czeka w żadne sposób aż ajax się zakończy więc funkcja jQuery ktora uaktualnia Ci htmla jest wywoływana gdy zmienne taskhtml supporthtml są jeszcze puste, potem callback(data['tasks']) zmienia wartości tych zmiennych ale dokument html zostaje ten sam :)
var taskhtml = whatStatus(tasks);
});
loadSupportList(function(tasks) {
var supporthtml = support(tasks);
});
do tego momentu dziala, tutaj gubi zawartosc htmla, wiec pewnie to znowu ta asynchronicznosc ( ͡° ʖ̯ ͡°)
loadTasks(function(tasks) {taskhtml = whatStatus(tasks);
loadSupportList(function(tasks) {
supporthtml