2014-09-29 2 views
1

내 파스 (Parse) 클라우드 기능에서 이상한 동작을 디버깅하려고합니다.파스 (parse) 클라우드 기능이 제대로 작동하지 않을 것이라고 약속합니까?

나는 response.success() 또는 response.error()가 호출되기를 기대하고있는 클라우드 함수가 약속이 해결되거나 오류가 발생할 때까지 기다릴 수 있는지 궁금해했습니다.

다음은 예입니다 :

Parse.Cloud.define("my_cloud_function", function(request, response) { 
    myFunctionThatReturnsAPromise().then(function(msg) { 
    msg = typeof msg !== 'undefined' ? msg : ""; 
    response.success(msg); 
    }, function(error) { 
    var message = typeof error.message !== 'undefined' ? error.message : ""; 
    response.error(message); 
    }); 
}); 

이 클라우드 기능 myFunctionThatReturnsAPromise 이전의 실행() 실제로 약속 반환의 끝에 도달하고 그 다음 블록 중 하나를 실행합니다. 시간 초과를 제외하고, my_cloud_function은 실행 완료 후에도 응답 객체를 사용하여 호출 전달을 안정 적으로 설정하게됩니까?

확실히이게 내가 관찰 한 것처럼 보이지만, 나는이 행동이 일관되게 일어나기를 보장하지 않는다.

+1

'myFunction ..'앞에 'return'을 시도 했습니까? 그렇다면 myFunction이 완료 될 때까지 기다려야한다고 생각합니다. – aarosil

+1

아니요,'myFunctionThatReturnsAPromise'는'function (request, response)'콜백이 실행되기 전에 * 약속을 확실히 돌려줍니다! "* 약속을 지키겠다"는 뜻입니까? – Bergi

+0

"백그라운드 작업 쓰기"섹션의 예제 코드는 기본적으로 내 질문에 대한 대답을 제안하는 것 같습니다. https://parse.com/docs/cloud_code_guide –

답변

0

내 코드 예제에서 사용 된 약속이 잘 작동하는 것처럼 보입니다. 해석 콜백이나 해결되지 않은 약속이있는 한, 호출 함수 블록의 끝에 도달하더라도 응답 콜백 중 하나가 호출 될 때까지 구문 분석을 기다립니다.

관련 문제