Я не опытный программист Javascript, поэтому может быть здесь что-то не так. Я просто хочу написать функцию, которая вызывает вызов AJAX для WEBAPI и вернуть массив обратно. Но я допускаю ошибку при понимании переменной.
function GetProductsOfAccount(AccountID) {
var returnProducts;
console.log("In GetProductsOfAccount");
var serviceURL = productURI + "/GetProductsOfAccount/" + AccountID;
console.log(serviceURL);
$.ajax({
type: "GET",
datatype: "json",
url: serviceURL,
context: this,
success: function (Products) {
console.log("From AJAX" + Products);
returnProducts = Products;
//This correctly holds and shows all products
console.log("Return Products 1 " + returnProducts);
},
error: function (x, y, z) {
returnProducts = null;
console.log("Error" + x + '\n' + y + '\n' + z);
}
});
//This just shows undefined
console.log(" Returned Products 2 " + returnProducts);
return returnProducts;
}
Почему возвращенные продукты теряют ценность в конце и как правильно это сделать?
Изменение: еще немного альтернативный синтаксис с использованием jQuery отложен (я не видел его в ссылке Arun):
var productsOfAccount = function (AccountID) {
var serviceURL = productURI + "/GetProductsOfAccount/" + AccountID;
return $.ajax({
type: "GET",
datatype: "json",
url: serviceURL,
}).promise();
}
var test = $.productOfAccount(20)
test.then(function(products){
console.log("From AJAX" + products);
returnProducts = Products;
//This correctly holds and shows all products
console.log("Return Products 1 " + returnProducts);
});
Вы можете применить test.then несколько раз для разных целей.
is the correct way to do such a thing?
- нет это не так