2014-09-20 2 views
0

조건부로 맞춤 메소드를 호출하는 Cloud Code에 afterSave 핸들러가 있습니다.Parse.com 클라우드 코드 맞춤 메소드 호출 결과가 정의되지 않았습니다.

필자의 테스트 결과, 두 기능 모두 원하는대로 정확하게 작동하는 것으로 보입니다. 사용자 정의 메소드는 적절하게 건너 뜁니다 (콘솔 메시지가 올바르게 보이는지 확인). 또한 적절히 호출되며 사용자 정의 메서드는 원하는대로 정확하게 새 객체를 만듭니다. ,

Input: {"title":"title","ownerId":"ownerId"} 
Result: undefined 

내가 말했듯이, 값이 제대로 전달 된 것 같다 :

은 무엇 나를 혼란은 사용자 정의 방법 라는 때, 나는 로그 내 클라우드 코드에 다음과 같은 것을 얻을 수 있다는 것입니다 이 메서드는 제대로 실행되는 것 같습니다. 그러나 나는 왜 Result: undefined이되는지 이해하지 못합니다.

호출되는 메서드에서 나는 가능한 모든 경로에 response.success() 또는 response.error()을 배치했습니다.

그럼, 걱정할 사항입니까?

사용자 지정 메서드는 "fire-and-forget"형식의 메서드이므로 내 afterSave 메서드는 응답을 기다리지 않습니다. 그게 내가 Result: undefined이되는 이유입니까?

답변

3

undefined을 얻는 이유는 응답 및 오류 기능이 어떤 값도 전달하지 않기 때문입니다. 이것으로 교체하십시오.

success: function(result) { 
    //... 
    response.success(result); 
}, 
error: function(error) { 
    response.error(error); 
} 

그러면 더 이상 undefined 결과가 표시되지 않습니다.

+1

정말로 아무것도 반환하고 싶지 않지만 여전히 "정의되지 않은"응답을 원하지 않으면 response.success ({})를 사용할 수 있습니다. –

+0

아, 알았어요. 나는'response.error (error)'를하고 있었지만'response.success()'만했다. 알아두면 좋습니다! 그래서, 단지'response.success ('success ')'는 좋은 해결책 인 것 같습니다. 그렇습니까? – mbm29414

+0

그래, 그거야! 원하는대로 응답 할 수 있습니다. – Dehli

관련 문제