私はこの問題をよく知っていますが、何も助けにならないので、私はこの質問をしています。質問は、 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 = [],
});
}
ように私はそのgetCartData()関数が実行された後に一度pushQuote要求が完了していること、非同期リクエストを送信したいです。これにあなたの経験を共有してください。前もって感謝します。
あなたの問題は投稿したスニペットには記載されていません。 promiseが解決される前に 'State.getCartData();'がトリガされることはありません。 'State.getCartData();'がどこでトリガーされているかを調べるべきです。これを行う簡単な方法は次のとおりです: 'console.info((new Error())。stack);'実際にスローすることなくエラースタックを記録しますが、アプリケーションの最後の10ステップを表示します'getCartData'を実行しました。お役に立てれば。 – Pjetr
ここにこのモデル関数を呼び出すコントローラ関数があります。 scope.pushIt = function(){ console.log( "サーバーへのデータのプッシュ"); State.pushData(); } ここでは、pushData()の単なる呼び出しです。 –
'getCartData'が実行する最初のものとして' console.info((new Error())。stack);を入れてもいいですか?あなたの投稿にスタックトレースを編集します。 – Pjetr