2017-04-18 23 views
1

コマンドを起動する方法と私はそれを行う方法がわかりません。私は他のthen.thenを追加する場合は、HTTP要求が満たされる前に、私は.thenステップに何かを追加した場合Angular2のtypescriptです約束

それは

.then(response => response.json().data as Any[] && alert("HI")) 

動作しない、それが起動します。

どうすれば実現できますか?

dfsqコードを使用すると、警告(「HI」)を発することができますが、応答は未定義です。これは私が使用する方法です:

this.dataService.get( "myurl")。then(response => console.log(response));

public get(module: String): Promise<any> { 
    return this.http.get(module) 
      .toPromise() 
      .then(response => response.json().data as Any[]) 
      .then(data => { 
      alert("HI") // <---- do something here 
      return data 
      }) 
      .catch(this.handleError); 
} 

あなたは、あなたが約束チェーンのさらに下にそれを渡すようにブロックするから、前のdataを返すことを確認してください:

は、私は未定義

+0

"もう一方の後に.thenを追加すると、http要求が実行される前に起動されます。"このコードを表示できますか?それは有望な連鎖の仕組みではありません –

+0

@suraj私はそれが '(警告("こんにちは)) 'だと思います。 – dfsq

答えて

1

あなたが実際に1つのより多くのthenブロックを追加する必要があり得ます。

+0

申し訳ありませんdfsq、警告( "HI")は動作していますが、応答が機能していません。何故ですか?私はconsole.logから未定義になります。 – tunoandsuno

+0

get関数内の応答は応答を返します。しかし、関数の外側は未定義です。 – tunoandsuno

+0

どこにconsole.logを正確に入れますか? – dfsq

関連する問題