эй, ребята, я знаю, что этот вопрос опубликовал много, но мне ничего не помогает, поэтому я задаю этот вопрос. Вопрос: я столкнулся с проблемой отправки синхронный запрос на 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 отправляет запрос на заданный 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 ("pushing Data to server"); State.pushData(); } вот только вызов callData(). –
Не могли бы вы поставить 'console.info ((new Error()). Stack);' как первое, что выполняет 'getCartData'? И отредактируйте трассировку стека в свой пост. – Pjetr