0
私たちがjavascriptで行うようにnodejsで外部関数を呼び出すので、関数を再利用できるようになりますが、私の場合は機能しません。どうして?nodejsのコールバック内で外部関数を呼び出す方法
私はnodejsで非同期に動作すると推測しています。これをどうやって解決するのですか?コールバック?私はnodejsが初めてです。配列retrievedContactsArr[0]
を印刷
app.get('/googleSyncCallback', passport.authenticate('google', {
failureRedirect: 'url'
}),
function(req, res) {
var contacts = new GoogleContacts({
token: req.token
});
var retrievedContacts = '';
var retrievedContactsArr = [];
contacts.getContacts(function(err, contacts) {
contacts.forEach(function(entry) {
retrievedContacts = {
contact: {
"phone": {
"cell": entry.phoneNumber,
}
},
}
retrievedContactsArr.push(retrievedContacts);
console.log('array... ', retrievedContactsArr[0]); //prints all values
});
});
checkIfContactExists(req, res, retrievedContactsArr);
}
});
function checkIfContactExists(req, res, retrievedContactsArr) {
//PRINTS UNDEFINED..
console.log('array... ', retrievedContactsArr[0]); //// LINE 10
}
ラインあなたは、コールバックの内側にあなたの関数を置くように変更する必要がある10
ここでの非同期動作はノード固有のものではなく、プラットフォーム間のjavascript言語の標準です。 – nem035
[非同期呼び出しからの応答を返すにはどうすればよいですか?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) – nem035
@ nem035これは通常、javascriptでは機能しません。そのノードで動作していない – Satyadev