0
我有这个JavaScript代码,我想改变成一个队列系统。目前我不得不像这样编码。当有很长一段时间的请求时,它会变得混乱。 注意:我的函数请求返回json对象。 将异步设置为false不用于跨域jsonp调用,因此无法工作。 调用必须按此顺序进行。 jquery队列不会工作。需要Javascript ajax队列系统。跨域jsonp。我将如何做到这一点。
var customers;
var orders;
var products;
function GetCustomers(){
$.ajax({
url: somecrossdomainurl?calback=GetCustomerCallback,
dataType: 'jsonp',
async: false
});
}
function GetCustomerCallback(data){
customers=data;
GetCustomersOrder();
}
function GetCustomersOrder(){
$.ajax({
url: somecrossdomainurl?calback=GetCustomersOrderCallback,
dataType: 'jsonp',
async: false
});
}
function GetCustomersOrderCallback(data){
orders = data;
GetOrderProducts();
}
function GetOrderProducts(){
$.ajax({
url: somecrossdomainurl?calback=GetOrderProductsCallback,
dataType: 'jsonp',
async: false
});
}
function GetOrderProductsCallback(data){
products = data;
DisplayCustomersAndOrder();
}
function DisplayCustomersAndOrder(){
//loop round customer,order,products and display info
}
//I want to do something like this:
function DisplayData(){
var queue;
queue.GetCustomer();
queue.GetCustomersOrders();
queue.GetOrderProducts();
queue.DisplayCustomersAndOrder();
queue.Start()
}
任何建议
使用jQuery的[递延对象(http://api.jquery.com/category/deferred-object/)。 –
会使用jsonp工作 – zee
可能它是一个简化的API,'$ .ajax'总是返回一个承诺对象。试一试 :) –