无法正确使用thunkify npm包

时间:2014-10-28 21:02:54

标签: node.js thunk

该功能有以下签名:

function hashPassword(password, callback){}

我想在co生成器函数中调用它,所以我尝试用thunkify包装它:

var checkPassword = thunk(user.checkPassword);
var isValid = yield checkPassword(userInfo.password);

结果我的单元测试失败,堆栈跟踪没有显示原因:

at error (..\node_modules\supertest\lib\js:235:13)
at Test.assert (..\node_modules\supertes\test.js:166:19)
at assert (..\node_modules\supertest\lib.js:132:12)
at ..\node_modules\supertest\lib\test.js
at Test.Request.callback (..\node_modules\superagent\lib\node\index.js:738:30)
at Test.<anonymous> (..\node_modules\superagent\lib\node\index.js:135:10)
at Test.emit(events.js:107:17) at IncomingMessage.<anonymous> (..\node_es\supertest\node_modules\superagent\lib\node\index.js:915:12)
at IncomingMessage.emit (events.js:129:20)
at _stream_readable.js:907:16
at process._tickCallback (node.js:372:11)

1 个答案:

答案 0 :(得分:0)

解决方案是指定函数的上下文,因为thunkify并不关心它:

var checkPassword = thunk(user.checkPassword).bind(user);