2016-10-09 3 views
1

저는 NodeJS와 twitter API를 실험하고 있습니다. 약속에 도움이 필요해. requestFollowers 함수는 약속을 반환해야하며 그렇게해야합니다. 노드 cli에서 파일을 실행하면 처리가되고 절대 값을 기록하지 않습니다. 그것으로부터 기대되는 가치를 얻는 방법 또는 그것을 해결하는 방법은 무엇입니까?트위터 API로 약속 된 가치를 얻을 수 없습니다.

다음은 내가 가지고있는 것입니다.

function requestFollowers(tweep) { 
 
    return new Promise(function(resolve, reject) { 
 
    twitter.get('followers/list', { 
 
     count: 200, 
 
     skip_status: true, 
 
     screen_name: tweep 
 
    }, function(error, followers) { 
 
     if (error) { 
 
     console.log('followers list/ error >', error); 
 
     reject(error); 
 
     } else { 
 
     resolve(followers.users.map(thing => thing.screen_name)); 
 
     } 
 
    }); 
 
    }); 
 
} 
 

 
function onMention(error, tweets) { 
 
    if (error) { 
 
    console.log('mentions_timeline/ error >', error); 
 
    } else { 
 
    //console.log('mentions_timeline/ tweets >', tweets); 
 
    let mentioned = tweets[0].entities.user_mentions 
 
     .filter(thing => thing.screen_name !== user.screen_name) 
 
     .map(thing => thing.screen_name); 
 

 
    var list1 = requestFollowers(mentioned[0]), 
 
     list2 = requestFollowers(tweets[0].user.screen_name); 
 

 
    console.log('list1 >', list1.then(val => val).catch(error => error)); 
 
    console.log('list2 >', list2.then(val => val).catch(error => error)); 
 
    } 
 
} 
 

 
var config = require('./config'), 
 
    Twitter = require('twitter'), 
 
    twitter = new Twitter(config), 
 
    user = { 
 
    screen_name: 'screen_name' 
 
    }, 
 
    /** @param {string} status */ 
 
    getStatus = status => ({ 
 
    status 
 
    }); 
 

 

 
twitter.get('statuses/mentions_timeline', user, onMention);

답변

1

당신은 당신이 전에 인수에 대한 약속 해결되지 않는 log 및 로그에 해결되지 않은 약속 체인을 통과했다 무엇

list1.then(console.log).catch(console.error); 

처럼 뭔가이 줄 console.log('list1 >', list1.then(val => val).catch(error => error));을 변경할 수 있습니다 그것들을 인쇄 - 그것의 동기. 또한 then(val => val)은 어쨌든 작동하더라도 중복됩니다. 입력을 반환하는 다른 함수는 필요하지 않습니다.

+0

예! 그 정답을 가져 주셔서 감사합니다. – colecmc

관련 문제