我正在使用 Q.ninvoke 执行猫鼬查询,例如:
var cursor = Tab.find();
// ...
cursor.sort({'someField': -1})
// ...
cursor.skip(page).limit(size)
// ...
return Q.ninvoke(cursor, 'exec');
当我在本地测试它时,这非常有效,但是当我在我的 CI (CircleCI) 上执行时,我得到了错误
Cannot call method 'apply' of undefined"
目前我通过这种方式更改我的代码来修复它
return cursor.exec();
但我仍然不明白为什么它在 CI 上的行为不正确。任何想法?
编辑这是堆栈跟踪:
"stack":"TypeError: Cannot call method 'apply' of undefined\
at Promise.post (/home/ubuntu/projName/node_modules/q/q.js:1074:36)\
at Promise.promise.promiseDispatch (/home/ubuntu/projName/node_modules/q/q.js:741:41)\
at /home/ubuntu/projName/node_modules/q/q.js:557:44\
at flush (/home/ubuntu/projName/node_modules/q/q.js:108:17)\
at process._tickDomainCallback (node.js:463:13)","arguments":["apply",null],"type":"non_object_property_call","message":"Cannot call method 'apply' of undefined"}