首页 > 解决方案 > await 函数似乎没有在等待

问题描述

我正在尝试构建一个简单的登录然后重定向,但 await 功能似乎不起作用。当我在每个等待之间添加一个 window.alert 时,它确实有效。请帮忙

客户:

      async function submitLogin(){

          var email,pass;

          email=$("#inputUser").val();
          pass=$("#inputPassword").val();         
          
		  try {
			  const result = await fetch("/login", {method:"POST", headers:{"content-type":"application/json"}, body: JSON.stringify({'email':email, 'pass':pass,}) });
			  const login = await result.json();

			  if(login.success === true) {
				window.location.href="/admin";
			  }
			  else {
				window.alert("incorrect login info");
			  }
		  } catch (e){
			console.log(e);
		  }
      }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<button class="btn btn-lg btn-primary btn-block" type="submit" id="submit" onclick="submitLogin()">Sign In</button>

服务器:

app.post('/login', async (req,res) => {

	sess = req.session;
	sess.email = req.body.email;

	let result = {};

	try{
		const pass = await checkUserPass(sess.email);
		if ( JSON.stringify(pass[0].password) == JSON.stringify(req.body.pass) ){
			result.success = true;			
		}
		else{
			result.success=false;			
		}
	}
	catch(e){
		result.success=false;		
	}
	finally{
		res.setHeader("content-type", "application/json");
		console.log(JSON.stringify(result));
		res.send(JSON.stringify(result));
	}
	
});

我可以看到这一行显示 console.log(JSON.stringify(result)); 在服务器控制台上。

标签: javascriptserverasync-awaitclient

解决方案


推荐阅读