는, 당신이 신뢰성의 값에 액세스 할 수있는 유일한 장소입니다 콜백 트리거 "몸을."
문제는 console.log 기능이 실행될 때 요청이 완료되지 않았기 때문에 콜백이 실행되지 않았기 때문입니다.
비동기 프로그래밍 환경에서 프로그램 흐름을보다 자세히 설명하려면 Problems with use fs.stat in nodejs을 참조하십시오.
은 --- 편집은 --- 예제 :
이를 고려
1: path='/tmp/file.txt'
2: result=''
3: fs.readFile path, (err,data) ->
4: throw err if err
5: result=data
6: console.log result
이 작업을 추적 할 수 있었다 우리는 실행 순서가 1,2 될 것이라고, 우리가 발견 할 경우, 3,6, ... 4,5 여기서 디스크 i/o의 특성으로 인해 줄임표는 알 수없는 시간을 나타냅니다.
결과를 기다리는 대신 읽기 작업이 완료되기까지 어느 정도의 시간이 걸리기 때문에 파일의 내용을 읽었을 때 나중에 예측할 수없는 시점에서 호출되는 콜백 함수를 제공합니다 '결과'에 지정할 수 있습니다.
프로그램 흐름이 6 행에 도달하면 파일 읽기 작업이 완료되지 않았기 때문에 콜백이 호출되지 않았으므로 결과가 설정되지 않았습니다.
계속 진행하기 전에 작업이 완료되기를 기다리는 대신 다른 목적으로 낭비되는 시간을 사용할 수있는 비동기 프로그래밍의 특성입니다.
--- 2nd EDIT --- 귀하의 요청에 따라, 귀하의 요청에 따라 다음과 같이 수정되어 작동합니다. 지금 여러 번 설명한 바와 같이 요청이 완료 할 때 알 수 없기 때문에, 당신은 콜백의 외부 요청의 결과를 액세스 할 수 없습니다
request = require('request')
auth =
url: ''
method: 'POST'
json:
credentials:
username: ""
key: ""
exports = exports ? this
request auth, (err, res, body) ->
exports.inside = body
console.log(exports.inside)
참고.
예를 들어 이해할 수 있습니다. 나는 JS/CS에 매우 익숙하다. –
위의 예제를 사용하여 콜백을 시도하면서 벽에 머리를 때리고 있습니다. 비동기가 쉽지 않습니다. 모든 도움이 크게 받아 들여지고 환영 받는다. :) –
나는 여전히이 문제로 싸우고 CoffeeScript/Request 콜백을 작동 시키려고합니다. 모든 도움이 훌륭합니다. :) –