我有一个thunk
名为logInline(改编自Co 文档)。
我注意到 thunkifiedget
似乎总是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
(即,没有数组)。
脚本,顺便说一句,返回200
或 google.com 返回的任何其他响应代码。
唉,产量文档是相当稀疏的 ATM。
编辑: Thunks 并不总是返回数组。例如,如果var readFile = thunkify(fs.readFile);
:
var fileContents = yield readFile('myfile', 'utf8');
log(fileContents);
在这种情况下,fileContents 不会在数组中返回。那么为什么谷歌在一个数组中呢? thunkify 中似乎有一些东西可以控制 thunk 返回的内容