logInline (Co documentation에서 변경)이라고하는 thunk
이 있습니다.왜 thunkify/yield는 항상 배열을 반환합니까?
나는 thunkified를 알게된다 get
항상 yield
배열로 보인다. 디자인에 의한 것인가? 이것이 thunkify
일까요, 아니면 yield
의 표준 부분입니까?
var co = require('co'),
get = thunkify(request.get);
var logInline = co(function *(){
var google = yield get('http://google.com');
console.log(google[0].statusCode);
})
logInline()
여기서 'google'변수는 항상 배열입니다. 왜? request.get
은 일반적으로 err, response
을 반환합니다 (즉, 배열이 없음).
스크립트 (BTW)는 200
또는 google.com의 다른 응답 코드를 반환합니다.
Alas the yield documentation은 꽤 희박한 ATM입니다.
편집 : 썽크가 항상 배열을 반환하지는 않습니다. 예 : var readFile = thunkify(fs.readFile);
:
var fileContents = yield readFile('myfile', 'utf8');
log(fileContents);
이 경우 fileContents는 배열 내에 반환되지 않습니다. 그렇다면 왜 배열 내부에 Google이 있었습니까? 는 썽크 항상 배열을 얻을 것으로 보인다 내가 얻을 thunkified 알
'yield'와 'thunkify'를 볼 시간이 없었기 때문에 추측 일 뿐이지 만 'when'과 'node.lift'와 비슷한 동작이 있습니다. ('err' 옆에) 하나 이상의 인수를 가질 수있는 콜백 메소드는 항상 배열이며, 여기서 a [0]은 첫 번째 인수이고, a [1]은 두 번째 인수이며, ... –