function get_klout(screenName) {
klout.getKloutIdentity(screenName, function(error, klout_user) {
klout.getUserScore(klout_user.id, function(error, klout_response) {
return Math.round(klout_response.score);
});
});
}
関数は非同期であるため、未定義を割り当てるだけなので、返されるものを変数に割り当てることはできません。
var result = get_klout('foo'); // undefined
あなたができることは次のとおりです。
async functions
で使用node 8+
- 使用して
Promises
- 使用
callbacks
:
function get_klout(screenName, done) {
klout.getKloutIdentity(screenName, function(error, klout_user) {
klout.getUserScore(klout_user.id, function(error, klout_response) {
done(Math.round(klout_response.score));
});
});
}
get_klout('foo', function(response) {
console.log(response);
});
注意: In node は を実装する一般的なパターンでありerror first callback
、エラーを処理するための伝統的でより使用されている方法であるため、それを確認する必要があります:
http://fredkschott.com/post/2014/03/understanding-error-ノード内の最初のコールバック js/