我的Node / Express API中有这个代码。它的工作原理
router.get('/auth',function(req, res, next){
var callback = function(redirectUrl){
return res.redirect(redirectUrl);
}
auth.beginOauth(callback);
});
但是,如果我将此代码修改为此类代码。它不起作用 -
router.get('/auth',function(req, res, next){
auth.beginOauth(res.redirect);
});
为什么当方法直接传递时,它不起作用?
答案 0 :(得分:3)
可能是执行上下文不同。
当您说res.redirect(redirectUrl)
时,this
方法中的redirect
指的是res
对象(除非使用自定义执行上下文),但是当您通过{时{1}}作为回调,当调用回调时,上下文丢失。
res.redirect