首先要弄懂js promise的用法,有心的朋友可以研究一下promise的实现。多层ajax嵌套在实际的业务中很可能发生(第一层的查询结果是第二层的参数),如果是两层嵌套,可以把第二层单独拿出来作为一个函数,但是有N层呢?想要优雅大方的解决这个问题,所以这里要用到promise链式编程技巧,写出来高端大气上档次,下面直接上代码,主要是演示为主,代码写的粗糙
var ajax1 = function(){
var resolve = arguments[0];
var reject = arguments[1];
ajax.post({
url : 'data/test1.json',
dataType:'json',
success : function(result) {
resolve(result);
},
error : function(error) {
reject(error);
}
});
}
var ajax2 = function(){
ajax.post({
url : 'data/test2.json',
data:arguments[0],
dataType:'json',
success : function(r) {
console.log(r);
return r;
},
error : function(error) {
}
});
}
var promise = new Promise(ajax1).then(ajax2);
我这里只写了两层,再多层可以自己去试验