이름으로 한 항목을 찾은 다음 테이블을 업데이트하고 업데이트 된 결과를 반환하려고 시도했지만 반환되지 않았습니다. 내 코드 :몽구스 findOne 메소드에서 return이 작동하지 않는 이유는 무엇입니까?
class addSongsToArtist {
constructor(artistName) {
Artist.findOne({
name: artistName
}).exec((err, data) => {
if (err) console.log(err);
data.name = 'updated name'
data.save();
return data // * not work
});
}
}
간부 인 방법 속으로 나는 올바른 결과 데이터를보고, 몽고 콘솔 결과에 저장. 하지만 돌아 오지는 마라. 외부 변수에 변경 사항을 저장하고 Promise에서 결과를 반환하려고 시도했지만 작동하지 않습니다. 왜 작동하지 않습니까?
'일하지 않는다 '는게 무슨 뜻이야? 그것은 비동기식 메서드입니다. 그래서 그것을 사용하기 위해'data'의 값을 어떻게 받아들입니까? 그 코드를 공유 할 수 있습니까? –
'data.save'는 입출력이므로 시간이 걸립니다. 몽구스가 그걸 가지고 놀기 전에 당신은 아무것도 돌려 보내지 않습니다. 'data.save (function (err) {return data}) '를 시도하십시오. –
js에서 비동기 동작을 이해해야합니다. http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call을 살펴보십시오. –