0
嘿傢伙我知道這個問題發佈了很多,但沒有任何東西不幫助我,這就是爲什麼我問這個問題。問題是我面臨發送一個問題同步請求到php。 這是我的模型功能,它是發送請求。
State.pushData = function() {
$http({
method: 'POST',
url: 'pushData.php?action=pushdata',
data: {'status': 'push', 'email' : State.campemail},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(response){
if(response.error){
console.log(response.error);
return;
}
State.getCartData();
State.selectedItems = [],
});
}
這個pushData函數發送一個post請求到定義的url。並獲取響應。編寫的代碼假設在最初發送的請求成功時執行「State.getCartData()」函數。但是這不是以這種方式工作。這兩個請求都立即執行。 我已經試過$ http與.post然後方法,但結果相同。這樣
State.pushData = function() {
$http.post('pushData.php?action=pushdata',
{'status': 'push', 'email' : State.campemail}
).then(function(response){
if(response.error){
console.log(response.error);
return;
}
State.getCartData();
State.selectedItems = [],
});
}
我要異步發送請求,一旦pushQuote請求完成後getCartData()函數將被執行。請分享你的經驗。提前致謝。
據我所知,您的問題不在您張貼的片段中。在承諾解決之前,沒有辦法可以觸發'State.getCartData();'。你應該找出'State.getCartData();'的觸發位置。一個簡單的方法是這樣做:'console.info((new Error())。stack);'這將會記錄一個錯誤堆棧而不會實際拋出一個錯誤,但它會告訴你最後10個步驟開始執行'getCartData'。希望這可以幫助。 – Pjetr
這裏是調用這個模型函數的控制器函數。 scope.pushIt = function(){ console.log(「推送數據到服務器」); State.pushData(); } 這裏不過是pushData()的調用罷了。 –
你可以把'console.info((new Error())。stack);'作爲getCartData'執行的第一件事情嗎?並將堆棧跟蹤編輯到您的帖子中。 – Pjetr