Вызов внешних функций в nodejs, как и в javascript, чтобы мы могли повторно использовать эту функцию, но в моем случае она не работает. Зачем?Как вызвать внешнюю функцию внутри обратного вызова в nodejs
Я предполагаю, что он работает асинхронно в nodejs. Как это исправить? Callbacks? Я новичок в nodejs.
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
}
печать массива retrievedContactsArr[0]
возвращается неопределенным в строке 10.
Асинхронное поведение, которое у вас здесь, не уникально для узла, оно является стандартным для языка javascript на разных платформах. – nem035
Возможный дубликат [Как вернуть ответ от асинхронного вызова?] (Http://stackoverflow.com/questions/14220321/how-do-return-the-response-from-an-asynchronous-call) – nem035
@ nem035 Обычно это не работает в javascript. Его не работает в nodejs только – Satyadev