Node Beginner Tutorial을 통해 내 개발 방식으로 작업 할 수 있도록 작업하고 있습니다. 예를 들어 coffeescript 및 requirejs를 사용하도록 선택합니다. 나중에 상당한 양의 콜백 - 수프가 상당한 양의 정상에 올랐습니다. 일반적으로 약속을 사용하는 것을 좋아합니다. 몇 가지 최소 연구 후 promise-io은 합리적인 해결책처럼 보입니다. 그것은 작동하지만 갑자기 모든 것을 사용하여 약속을 결합하는 문제에 직면하고 있습니다 (jQuery와 유사합니다 - 언제 이것이 자주 사용하는 기술인지).노드 약속 - io - 왜 충돌이 발생합니까?
다음은 내 server.coffee 파일입니다. 완벽하게 작동하므로 중첩 지연을 all
호출로 바꾸면 하나의 요청이 처리되어 서버가 중단됩니다. 누구든지 문제가 뭔지 알 수 있습니까? 그것을 실행하는 두 번째 시간, 당신은 완전히 다른 값을 가지게됩니다
exports.start = ->
requirejs ['http', 'url', './route'], (http, url, route)->
console.log "Starting server"
server = http.createServer (request, response) ->
pathdata = url.parse request.url
###
#this breaks
promise.all(readingPost(request), route.promise).then (x) ->
[postData, route] = x
route pathdata, response, postData
###
#this works
readingPost(request).then (postData) -> route.promise.then (route) ->
route pathdata, response, postData
server.listen 8888
readingPost = (request) ->
request.setEncoding 'utf-8'
data = ''
request.addListener 'data', (dataChunk) ->
data += dataChunk
d = promise.Deferred()
request.addListener 'end', -> d.resolve data
d
오 당신이 절대적으로 정확한지에
변경해보십시오! 필자는 속성을 사용하지 않고 단일 값을 직접 내보내는 방법을 알아야합니다. –