2017-08-15 4 views
0

どうすればこの関数を書くことができますか?これをタイムアウトコールバックで解決するにはどうすればいいですか?私はjavascriptの約束を新しくしたので私は尋ねています。Javascriptで約束をきちんとつなぐ方法

getStuff(): Promise<any> { 
    let self = this; 

    return new Promise(function(resolve, reject) { 
     self.getData() 
      .then(function(resp) { 
       self.parse(resp); 
      }) 
      .then(function() { 
       setTimeout(function() {         
        resolve(); 
       }, 5000); 
      }); 
    }); 
} 
+0

これがES6タグ付けされているので、あなたは、少なくとも配列関数を使用して、いくつかの混乱を削除することができます。 'それから(resp => this.parse(resp))'。中括弧とキーワードが少なく、 'self'の必要はありません。 – Thilo

+0

あなたの関数は無限ループです.... – codeSetter

+0

再帰とタイムアウトの組み合わせがこのコードの目的を混乱させるので、あなたが達成しようとしていることを言葉で説明することができますか?この。 – jfriend00

答えて

0

以下の例を参照してください...

getStuff(): Promise<any> { 
     let self = this; 

     return new Promise(function(resolve, reject) { 
      self.getData() 
       .then(function(resp) { 
        return self.parse(resp); //return here 
       }) 
       .then(function(resp2) { 
        setTimeout(function() {         
         resolve(resp2); 
        }, 5000); 
       }, 
       (err) => reject(err)); 
     }); 
    } 
関連する問題