2016-08-22 8 views
0

応答が返ってくると、callback_data(json)というコールバック関数を必要とするサードパーティのAPIを使用しています。ブロック内から呼び出されるコールバック関数のスコープを設定する方法は?

ただし、グローバルスコープでcallback_data(json)を呼び出しているようです。ブロック内でcallback_data(json)関数をスコープして、私が約束通りの流れを制御できるようにしたいと思います。それはサーバからの応答を受信したとき

return new Promise(resolve => { 
      (function(callback_data) { 
       api.request({"q": term}); //The third-party API call 
      })(function(json) { 
       resolve({...json.data, q: term}) 
      }); 
     } 
    ); 

ので、ラインapi.request({"q": term});callback_data(json)関数を呼び出します:

はここでこれを行うには私の試みです。しかし、グローバルスコープでコールバック関数を呼び出します。 api.request()が開始されたブロック内から呼び出すことができます。

私がしたことは、すべてを自己呼び出し関数に入れ、関数として自己呼び出し関数のパラメータとしてcallback_data(json)関数を渡すことができると考えていたことです。私は、これが自己起動機能ブロック内のすべてをスコープすると考えました。残念ながら、これは動作しませんでした。

グローバルスコープであるはずのコールバック関数をブロック内から呼び出すにはどうすればよいですか?

私は自分のコードでTypescriptを使用しています。

+1

これはJSONPと似ています。これは、新しい '

関連する問題