2017-03-13 10 views
1

私は観測値を約束に変換するのに苦労しています。角度2 - 約束に守ることができません

__zone_symbol_state: null__zone_symbol_value: Array[0]

また、解雇れることは決してありません約束のthen一部は:私はそこtoPromise()関数がどのobservable上だが、私はこの機能を使用する場合、それは私の性質を持つZonedAwarePromiseを返すことを知っています。

コンクリート状況

私はファイルを読み込み、約束の内側にその内容を返します。http-APIリクエストを送信したい:

public getData(fileName: string): Promise<any> { 
    return new Promise((resolve, reject) => { 
     this.getHomeDirectory().then(homedir => { 
      const fullFileName = homedir + fileName; 
      const myApiRequest = "..." + fullFileName; 
      return this.http.get(myApiRequest) 
         .map(this.extractData) 
         .toPromise() 
         .catch(this.handleError); 
     }); 
    } 
} 

がそうのようにこの約束を呼び出します

const fileName = '...'; 
this.fileService.getData(fileName).then(content => { 
    console.log(content); // never gets fired! 
}); 

returnresolve(...)またはに置き換えたと今私は正確にthen作業を得るために、この約束を果たす方法を残していない。

ご協力いただきありがとうございます。あなたが解決しなければならないnew Promiseコールバックで

+0

は、あなたが実際に受信しているかを確認するには、ネットワーク]タブを確認しましたか? 'Array [0]'は、あなたの要求/応答の処理に何か変わったことがあることを私に示唆します:) – Alex

答えて

0

public getData(fileName: string): Promise<any> { 
    return new Promise((resolve, reject) => { 
     this.getHomeDirectory().then(homedir => { 
      const fullFileName = homedir + fileName; 
      const myApiRequest = "..." + fullFileName; 
      this.http.get(myApiRequest) 
         .map(this.extractData) 
         .catch(this.handleError) 
         .subsucribe(data => { 
          resolve(data) 
         }); 
     }); 
    } 
} 
+0

あなたの答えに感謝します。残念ながら、決して解決されないようです。私はなぜ分かりませんが、明らかにリクエストが応答を出すことはありません。 – jlang

関連する問題