對不起,如果標題太模糊,我不確定如何更好地解釋它。這兩個函數調用爲什麼不相等?
爲什麼在這種情況下使用匿名函數調用的工作:
Team
.findAll()
.then(function(teams) {
res.send(teams);
});
但直接傳遞res.send
到.then()
,這是行不通的:
Team
.findAll()
.then(res.send);
這導致了這個錯誤:
Possibly unhandled TypeError: Cannot read property 'method' of undefined
at res.send (/opt/web/projects/node_modules/express/lib/response.js:83:27)
at Promise._settlePromiseAt (/opt/web/projects/node_modules/sequelize/lib/promise.js:76:18)
at process._tickCallback (node.js:442:13)
這兩個不相等嗎? res.send
只接受一個參數,所以它不像它傳遞一些奇怪的未知參數到函數中。
你已經得到了你的答案,但這裏是一個函數對象成員傳遞給點擊處理函數的例子,它演示了你可以傳遞一個javascript對象的屬性作爲回調http://jsfiddle.net/bknjaf6k/ – Zack 2015-03-13 17:44:53