2014-03-06 31 views
1

我有一個JavaScript文件,並有兩個函數all_surveys()和survey()。這兩個函數都是API調用。我想在開始時啓動函數all_surveys(),並且在完成時我想啓動函數survey()。我怎樣才能做到這一點?開始功能接連完成

function all_surveys(){ 
$.ajax({ 
    type: "GET", 
    url: url_surveys, 
    dataType: "json", 
    success : 
     function (data) { 
     //some code 
    }, 
    error: 
}); 
} 

function survey(){ 
$.ajax({ 
    type: "GET", 
    url: url_survey, 
    dataType: "json", 
    success : 
     function (data) { 
     //some code 
    }, 
    error: 
}); 
} 
+1

從第一個函數調用'success'回調中的第二個函數。 – Phrogz

+2

'成功:調查'也許? – tadman

+0

在'成功'裏面叫它。 – sabof

回答

2

嘗試

all_surveys(); 
function all_surveys(){ 
$.ajax({ 
    type: "GET", 
    url: url_surveys, 
    dataType: "json", 
    success: survey, 
}); 
} 

function survey(){ 
$.ajax({ 
    type: "GET", 
    url: url_survey, 
    dataType: "json", 
    success : 
     function (data) { 
     //some code 
    }, 
}); 
} 

如果你想要做的東西與數據或做多件事情,你將不得不使用匿名函數,但:

all_surveys(); 
function all_surveys(){ 
$.ajax({ 
    type: "GET", 
    url: url_surveys, 
    dataType: "json", 
    success: function(data){survey(); /* console.log(data) */}, 
}); 
} 

function survey(){ 
$.ajax({ 
    type: "GET", 
    url: url_survey, 
    dataType: "json", 
    success : 
     function (data) { 
     //some code 
    }, 
}); 
} 
+1

只是'成功:調查'怎麼樣? – Phrogz

+0

@Progrog謝謝,編輯 – Cilan

+0

@Progrog謝謝,我從來沒有這樣做過。我習慣於匿名函數。 – Cilan

3

使用承諾!

function all_surveys() { 
    return $.ajax({ 
     type: "GET", 
     url: url_surveys, 
     dataType: "json" 
    }).then(function (data) { 
     //some code 
     return …; 
    }); 
} 

function survey() { 
    return $.ajax({ 
     type: "GET", 
     url: url_survey, 
     dataType: "json" 
    }).then(function (data) { 
     //some code 
     return …; 
    }); 
} 

all_surveys().then(function(allsurveysResult) { 
    surveys(); 
});