2017-05-24 5 views
-2

私はtwitter botを作って動作しています。しかし、それは関数にリファクタリングするネストされたロジックの束です。このtwitterからargsを取得するにはどうすればいいですか?

私は、このTwitterのAPI呼び出しを持っていると私は返事パラメータを返すようにしたい、

T.get('trends/place', { id: '23424977' }, function(err, reply) { 
    // THE WHOLE APP IS BASICALLY IN HERE 
{ 
それは私が私が他のいくつかのアイデアを周りめちゃめちゃ

T.get('trends/place', { id: '23424977' }, function getTrends(err, reply) { 
    // THE WHOLE APP IS BASICALLY IN HERE 
{ 

のような関数に名前を付けることはできません

運がない。

全体ボットが最もよく、私は質問を理解できるよう、ここでhttps://glitch.com/edit/#!/trending-mishap?path=server.js

+0

(上記に明らかな必要はありませんが、しかし、あなたが個別に機能を定義し、そしてちょうどAPI呼び出し 'getTrends'を与えた場合、*その*は、理にかなって)あなたは確かにそのように機能に名前を付けることができます。あなたが求めていることはまったく明らかではありません。 [*どのように良い質問をしますか*](/ help/how-to-ask)を読んで、詳細と特定の質問を追加するには "編集"リンクを使用してください。関連するコードの** ** **はリンクされていなくても問題でなければならないことに注意してください。参照してください:[mcve] –

+0

@TJCrowder良い質問のリンクをお願いします。ありがとうございました – j1mmy

+0

これは主に[非同期呼び出しからの応答を返す](https:///stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call/14220323#14220323)。非同期操作の結果を直接的かつ同期的に返すことはできません。コールバックのようなものを使用したり、約束を返したりして、後で結果を返す必要があります。 – jfriend00

答えて

0

で、問題は、あなたが別の関数にコールバック内のコードを分離したいということです。それは問題ありません。

T.get('trends/place', { id: '23424977' }, getTrends); 
function getTrends(err, reply) { 
    if (err) { 
     handleError(err); 
     return; 
    } 
    doSomethingWith(reply); 
} 
function doSomthingWith(reply) { 
    // ... 
} 

などなど

0

がに.getパラメータのうち、あなたの関数を移動し、その後返信渡し、に.getコールバックにそれを呼び出す:

はここでラフな例です。

var yourSpecialFunction = function(values) { 
    // do things here 
}; 
T.get('trends/place', { id: '23424977' }, function(err, reply) { 
    if (err) { 
     // handle the error 
    } else { 
     yourSpecialFunction(reply); 
    } 
} 
関連する問題