本文记录自己用vue遇到的一个很奇怪的bug。
经过测试,原因:有个方法调用多个ajax,因为是多个ajax,异步,有可能上个方法没执行完就执行下个方法了。
解决:ajax嵌套ajax。每次用ajax后在success后调用下一个ajax。(PS如果会用typeof xx===“function”&&xx()可以把success交给形参。形参function里调用下一个ajax。)
用typeof x === "function" && cb(); 来把ajax的回调函数交给调用方法 的人。
function ss(cb) {//cb为回调函数
ajax1({
successs: function (res1) {
ajax2({
successs:function (res2) {
ajax3({
success:function (res3) {
//这里把所有的回调函数的参数交给function调用者
typeof cb==="function" &&cb(res1,res2,res3);
}
})
}
})
}
})
}
ss(function(res1,res2,res3){
//对res1,res2,res3进行操作。
})