gpt4 book ai didi

javascript - 为什么作为参数传递的方法在这里不起作用

转载 作者:行者123 更新时间:2023-11-28 19:09:47 24 4
gpt4 key购买 nike

我的 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);

});

为什么直接传递方法时不起作用?

最佳答案

可能是执行上下文不同。

当您说 res.redirect(redirectUrl) 时,redirect 方法中的 this 指的是 res 对象(除非使用自定义执行上下文),但是当您将 res.redirect 作为回调传递时,调用回调时上下文将丢失。

router.get('/auth',function(req, res, next){   
auth.beginOauth(res.redirect.bind(res));
});

关于javascript - 为什么作为参数传递的方法在这里不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30934434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com