2017-10-16 14 views
0

私は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」リクエストが最初

+0

GETリクエストがデータを返さないことをどのように知っていますか? – deceze

+1

ブラウザのネットワークインスペクタは、リクエストがどのような順序でトリガされたと言いますか? – deceze

+2

ネットワークタブに正しい順序でリクエストが表示されているが、システムコールが順不同で発生した場合、APIは壊れた部分のように聞こえます。 – ssube

答えて

0

を発行している私が問題を発見したようです。私は早いルーティングを引き起こした私の「保存」リンクに「href」タグを持っていました。意図した 'POST'と 'GET'は正しく起動されましたが、空になっていても、リンクの 'href'タグのために別の 'GET'があります。

タグを削除しましたが、これは意図したとおりに動作します。

関連する問題