这个问题在这里已经有答案了:
如何从异步调用返回响应
(42个答案)
(42个答案)
三年前关闭的
在if语句中有一个函数
isLoggedin()具有异步调用
路由器.get(’/’,函数(req,res,next){
if(req.isLoggedin()){<;-从不返回true
console.log(’Authenticated!’);
}否则{
console.log(“未经验证”);
}
});
如何在此if语句中等待isLoggedin()
这是我的isLoggedin函数,我在其中使用passport
应用程序使用(功能(请求、恢复、下一步){
req.isLoggedin=()=>{
//本地护照
if(req.isAuthenticated())返回true;
//http承载
passport.authenticate(’bearer-login’,(err,user)=>{
如果(错误)抛出错误;
如果(!user)返回false;
返回true;
})(请求、回复);
};
next();
});
我在这里的游戏代码中使用async/await
来完成这项工作
假设req.isLoggedIn()
返回一个布尔值,其简单如下:
const isLoggedIn=wait req.isLoggedIn();
如果(isLoggedIn){
//做登录的事情
}
或将其简写为:
if(等待请求isLoggedIn()){
//做事
}
但是,请确保在异步
函数中包含该函数