私はVueJsを使用して小さなサンプルアプリケーションを作成し、SQL Serverのバックエンドにデータを格納および取得するC#REST APIを作成しました。JavaScript - 約束が早すぎますか?
テストのために、フォームを使用して「メモ」を作成する簡単なWebページを作成しました。ノートは「SaveDataを()」、次の関数によって保存されています。
saveData()
{
let promiseStack = [];
var jsondata = JSON.stringify(this.note);
promiseStack.push(this.$http.post('REST_API/note', jsondata));
Promise.all(promiseStack).then(data =>
{
this.$http.get('REST_API/note');
this.$router.push({ name: 'viewnotes', params: { id: data[0].body.id }})
}, error =>
{
console.log(error);
});
}
私はバックエンドで「店の操作が完了するまで待機する約束を使用して、すべてを取得するためのGETリクエストを発行しようとしました約束が成就したらメモします。
ただし、約束内のget要求はデータを返しません。後で手動でgetリクエストを発行すると、以前に格納されたデータを取得します。
私はC#REST APIを調べました。現在、createNote(...)、getAllNotes(...)の2つの関数があります。私はStreamWriterを使用して、これらの関数が呼び出されたときにmilisecondの精度でファイルシステムにログを記録しました。私が見ているのは、 'createNote'は 'getAllNotes'の後に呼び出されるということです。だから私は、APIが正しく動作していると思うが、私が約束を使用している方法で何かがひどく間違っているようだ。
多分誰かがヒントを持っていますか?
UPDATE
私は、GETリクエストはクロムで開発者ツールバーを使用して、任意のデータを返さないことを知っています。応答が空であるネットワーク]タブで
開発者ツールバーは、要求が正しい順序で提出されていることを示しているので、「POST」リクエストが最初
GETリクエストがデータを返さないことをどのように知っていますか? – deceze
ブラウザのネットワークインスペクタは、リクエストがどのような順序でトリガされたと言いますか? – deceze
ネットワークタブに正しい順序でリクエストが表示されているが、システムコールが順不同で発生した場合、APIは壊れた部分のように聞こえます。 – ssube