봐.
foo(data, (err, result) ->
bar(result, (err, omgimtired) ->
foobar(omgimtired, (err....) ->
...
)
)
)
예를 들어 대신
당신은
async.waterfall
를 사용하고 다른 후 하나를 호출 할 그것을 함수의 목록을 공급할 수 있습니다.
약속은 매우 간단합니다 (주위에 마음을 감싸는 경우). 그들은 특정 작업의 결과 인 객체를 설명합니다. 결과를 나타내는 모든 함수에서 객체를 반환한다고 가정 해보십시오. 이제는 모든 결과에 '성공'완료를위한 콜백과 성공하지 못한 콜백이 전달되는 함수 (then(...)
)가 있다고 상상해보십시오. 진정해? 약속을 특별하게 만드는 유일한 방법은이 콜백이 또 다른 약속을 반환 할 수 있다는 것입니다.이 약속은 이행해야하는 "봉쇄"약속에 대해 먼저 충족되어야합니다. 등등. 콜백 시퀀스를 .then(...)
호출 체인으로 대체하면됩니다.
Parse.User.logIn("user", "pass", {
success: function(user) {
query.find({
success: function(results) {
results[0].save({ key: value }, {
success: function(result) {
// the object was saved.
}
});
}
});
}
});
Parse.User.logIn("user", "pass").then(function(user) {
return query.find();
}).then(function(results) {
return results[0].save({ key: value });
}).then(function(result) {
// the object was saved.
});
http://blog.parse.com/2013/01/29/whats-so-great-about-javascript-promises/에서 음료 대 유사한 주제 What are the differences between Deferred, Promise and Future in JavaScript?
1. 구글이 이러한 유형의 잘 작동에 매우 철저한 대답에서이 쿨 - 에이드 http://www.slideshare.net/domenicdenicola/callbacks-promises-and-coroutines-oh-my-the-evolution-of-asynchronicity-in-javascript 문제. 2. 예. 모든 자바 스크립트 구문은 coffeescript에서 사용할 수 있습니다. 3. 여기에는 몇 개의 캠프가 있지만 노드 순 진자는 일반 오래된 콜백을 사용합니다. –