【发布时间】:2016-08-03 10:43:34
【问题描述】:
我有这个事件的按钮:
$("#getSensorsObs").click(function (e) {
e.preventDefault();
postCallOne();
postCallTwo();
});
我希望postCallTwo 在 postCallOne 成功完成第一次通话后触发。
function postCallOne() {
setWait();
//do something
return $.post(ADDRESS, {fieldONE : fieldOneVal })
.done(function (data) {
console.log("RESPONSE SUCCESS ");
// do something
}).error(function(x, t, m) {
alert(x + ' ' + t + ' ' + m);
}
}).then(function (resp) {
return $.Deferred(function(def){
def.resolveWith({},[resp == 1,valueSelected]);
}).promise();
});
这是第二个功能:
function postCallTwo() {
setWait();
//do something
return $.post(ADDRESS2, {fieldONE : fieldOneVal })
.done(function (data) {
console.log("RESPONSE SUCCESS ");
// do something
}).error(function(x, t, m) {
alert(x + ' ' + t + ' ' + m);
}
});
});
我试过了:
$("#button").click(function (e) {
e.preventDefault();
postCallOne.then( function(){postCallTwo();});
});
但是我已经返回 postCallOne.done 不是一个函数。
我不太了解 Deferred,谁能帮帮我?
非常感谢。
【问题讨论】:
-
postCallOne().done(postCallTwo);?!
标签: javascript jquery post jquery-deferred deferred