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