2017-02-04 9 views
0

Twitter APIクライアントTwitを使用しています。そして、私はgetを要求した後、どのように関数を実行できるのだろうか?リクエスト取得後にjs関数を実行する方法は? W/Twit

現在、getUsers()関数はprintUsers()関数の後に実行されていますが、getUsers()関数とprintUsers()関数を実行します。

console.log("Hello Bot"); 
 

 
var Twit = require('twit'); 
 

 
var config = require('./config'); 
 
var T = new Twit(config); 
 

 
var randomUsers = []; 
 

 
function getUsers() { 
 
    // search twitter for all tweets containing the word 'javascript' 
 
    var params = { 
 
     user_id: '3180043436', 
 
     count: 2 
 
    } 
 

 
    T.get('friends/ids', params, gotFriends); 
 
    T.get('followers/ids', params, gotFollowers); 
 

 
    function gotFriends(err, data, response) { 
 
     console.log(data.ids); 
 
     Array.prototype.push.apply(randomUsers, data.ids); 
 
    }; 
 

 
    function gotFollowers(err, data, response) { 
 
     console.log(data.ids); 
 
     Array.prototype.push.apply(randomUsers, data.ids); 
 
    }; 
 
    console.log(); 
 
} 
 

 
function printUsers(){ 
 
\t console.log(randomUsers); 
 
} 
 

 
getUsers(); 
 
printUsers();

答えて

1

Twitは約束をサポートしているにも関数名です。コールバックを渡さないと約束を返します。あなたはこれらの約束を収集し、prepairedデータにコールバック関数をPromise.alljQuery.whenまたはasync.parallelライブラリー方法を使用して並列的にそれらのすべてを実行し、最後の実行で可能性:

console.log("Hello Bot"); 

var Twit = require('twit'); 
var $ = require('jquery'); 

var config = require('./config'); 
var T = new Twit(config); 

var randomUsers = []; 

function getUsers(callback) { 
    // search twitter for all tweets containing the word 'javascript' 
    var params = { 
     user_id: '3180043436', 
     count: 2 
    }; 

    var promise1 = T.get('friends/ids', params); 
    var promise2 = T.get('followers/ids', params); 

    $.when(promise1, promise2).done(function(data1, data2) { 
     randomUsers.push(data1.data.ids).push(data2.data.ids); 
     callback(randomUsers); 
    }); 
} 

function printUsers(randomUsers){ 
    console.log(randomUsers); 
} 

getUsers(printUsers); 
1

は、URLでコールバック機能

$(function(){ 
    $.ajax(
     { 
      type: "GET", 
      dataType: "jsonp", 
      url: "http://example.com/json.php?callback=callNow", 
     }); 
}); 
    function callNow(data){ 
      alert(data.name + " " + data.lastname); 
    } 

通知callNowを使用する必要があり、それが

関連する問題