0
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
여기서 비동기 동작은 노드에 고유하지 않으며 플랫폼 전반의 자바 스크립트 언어에서 표준입니다. – nem035
[비동기 호출의 응답을 반환하는 방법] (http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call)의 가능한 복제본 – nem035
@ nem035 보통이 기능은 자바 스크립트에서 작동합니다. 그것 nodejs에서만 작동하지 않습니다 – Satyadev