2017-01-20 13 views
0

httpを使用してからsocket.ioを使用してAngular 2アプリにデータを移動する処理が進行中です。この例では、私のコンポーネントコンストラクタでapi.serviceのプライベートバージョンを使用しています。私が今行う必要があるのは、api.serviceで定義された "get"関数を呼び出すことだけです(すでにsocket.ioを使用するように設定されています)。StringパラメータをMy Socket.io対応のAngular 2コンポーネントに渡す

私はこのように見えたHTTP GET機能使用していた私のコンポーネントで今
public get(req: string, options: any, callback: IRequestCallback) { 
      // go get stuff 
    } 

:今、私は

getByCategory() { 
    return this._http.get(this._url) 
     .map((response:Response) => response.json()) 
     .catch(this._errorsHandler); 
} 

をこれは次のようになりますapi.serviceから何を「取得」機能でありますこれを変更して、代わりにapi.serviceからsocket.io関数を使用してください。一番上のコードでわかるように、api.serviceからのソケットget()呼び出しは、3つのパラメータ(文字列、オプション、コールバック)を要求しています。私はこれを試しました:

getByCategory() { 
    return this.__socket.get(this._url, this.args, function(data) { 
    }); 
} 

...しかし、私はすでにURLがapi.serviceで提供されていることを認識しています。だから、私が悩んでいるのは、これが響くかもしれないほど愚かで、私が最初のパラメータとして渡すことができるものです。空の文字列を最初のパラメータとして渡してみましたが、それがエラーになりました。 URLの代わりに、どんな文字列をここに渡すことができますか?それともこの周りに別の方法がありますか?

答えて

0

まず、(私はユースケースのすべてを知っていないこと!)私はHTTPモジュールでは問題がなかったしましたので、あなたはスイッチを作った理由を、私は好奇心が強い

を言われていること、それはのように聞こえますsocket.ioがどのように基底のコードを処理しているかに依存します。Typescript(オプション)のオプションパラメータは通常undefinedをプレースホルダとして想定していますので、この場合はundefinedを渡すことができます。

+0

ありがとうございます、私はこれを試してみます。私たちは、クライアントとサーバーの間で、また複数のユーザーから、リアルタイムで最新の情報をやりとりするため、ソケットに切り替えました。 – Muirik

+0

Gotcha!私はそれがうまくいくことを望む私はその機能が何をしているのか分からないので、確信が持てませんが、それが最善の策です。 – chrispy

+0

"未定義"を試してみることをお勧めします。私はときどき "未定義"はエラーではなく、有効なプロパティであることを忘れています。 – Muirik

関連する問題