2013-05-12 7 views
0

이 질문에 대한 답변을 찾는 데 어려움을 겪고 있습니다. 적절한 용어를 사용하지 않았기 때문에 의심됩니다. 유성을 사용하고 있습니다. 여기 다른 기능이 완료 될 때까지 하나의 기능을 지연시키는 방법은 무엇입니까?

나는 달성하기 위해 노력하고 무엇 :

Function A - returns the flickr userID based on userAPI and username 
Function B - uses the userID generated by Function A 

내가 가진 문제는 Function A는 플리커 (Flickr)에서 정보를 검색 할 수있는 기회가 전에 Function B이 완료된다는 점이다.

Function B을 지연시키고 어떻게해서든지 Function A의 성공적인 완료에 연결하는 가장 좋은 방법은 무엇입니까?

답변

2

Meteor는 노드 위에 구축 된 비동기 프레임 워크이기 때문에 조금 익숙해 져야합니다. 이를 수행하는 한 가지 방법은 다음과 같습니다.

var a = function(cb){ 
    var flickerId = getFlickerId(); 

    cb(flickerId); 
}; 

var b = function(flickerId){ 
    //do something with the id 
}; 

//call it 
a(b); 

깜박임 정보를 가져 오는 프레임 워크를 사용하고 계신 것으로 추측됩니다. 그 프레임 워크는 아마도 함수 'a'처럼 콜백을받는 함수 호출을 가지고있을 것입니다.

콜백 스택이 더 깊어지고 깊어지면서 이러한 종류의 코드가 혼란 스러울 수 있습니다. 위의 내용을 숙지하고 나면 https://github.com/kriskowal/q을 살펴보고 청소기 솔루션을 제안합니다.

관련 문제