我試圖調試一些測試 - 我有以下代碼:爲什麼這個函數沒有返回任何東西?
test('Can get the test Side',
function() {
stop();
debugger;
var result = getTestSide();
debugger;
changeTestSide(result);
}
);
// Step 1: Get test side
function getTestSide() {
$.ajax({
type: 'GET',
url: urlWithId,
success: function (result) {
return "test success";
debugger;
ok(true, "GET succeeded.");
if (!result.SideId === testSideId) {
throw "GET result does not equal testSideId";
} else {
ok(true, "Returned key matches testSide Id.");
return result;
}
},
error: function (result) {
return "test failure";
debugger;
throw "Error";
}
});
};
無論怎樣,在頂部方法「結果」始終是不確定的。爲什麼是這樣?無論getTestSide成功還是失敗,我都會返回一個字符串。
您的ajax調用是異步的,因此從「成功」或「錯誤」函數返回值不會影響任何內容。您不能在異步系統中以這種方式構建代碼。 – Pointy 2013-03-17 18:45:37