2015-02-02 3 views
3

다음 약속 구문을 만들려고합니다.약속을 되 찾는 약속?

게시 기능 다음에 보조 then을 호출하고 싶습니다. 어떻게해야합니까? (주석 말했듯이 - .post 반환 약속을 가정하고)

randomBytes.then(function() { 
    return requestPromise.post(....); 
}).then(function() { 
    // I want this part to be called after the POST 
}); 
+8

'requestPromise.post'가 Promise를 반환하면 코드가 원하는대로 작동해야합니다. – dfsq

+0

더 많은 코드를 게시 할 수 있습니까? $ http 함수를 사용하고 있습니까? –

+1

이것은 "약속을 되 찾는 약속"이 아닙니다. 약속은 아무것도 반환하지 않습니다. 그들은'then' 호출에서 지정된 핸들러를 호출합니다. 그래서 여기서 올바른 설명은 "약속을 되돌려주는 약속 핸들러"입니다. 다른 사람들이 말했듯이 약속 사양에서 완벽하게 잘 정의되어 있습니다. 그래서 당신이 쓴 것이 있다면 괜찮습니다. 너 해봤 니? 귀하의 질문은 무엇인가? –

답변

3

이 이미 작동하는 사실은 거의 then의 포인트입니다 - 당신이 물건을 기다릴 수 있습니다.

당신이 then에서 약속을 반환 할 경우, 체인이 상태을 가정하고 따라서 그것은을 완료 한 후에 만 ​​다음 세그먼트를 를 호출합니다.

randomBytes.then(function() { 
    return requestPromise.post(....); 
}).then(function() { 
    // WILL ALWAYS BE CALLED AFTER THE POST 
}); 
0

그리고 '다음'을 추가하여 게시 값을 가져올 수 있습니다.

randomBytes.then(function() { 
    return requestPromise.post(....).then((value,...)=>{return value;}); 
}).then(function(value) { 
    //console.log(value); 
}); 
+0

'.then ((value, ...') 부분은 중복되었습니다. (만약 당신이 그런 함수를 쓰려고한다면'value => value'처럼 좀더 조밀하게 할 수 있습니다; 아무것도하지 않는 것이 더 분명해진다.) –

관련 문제