Я делаю POST-запрос, используя Fetch на своем клиентском javascript для моего серверного javascript, который использует Express Js и Firebase Auth.Auth (). SignOut () возвращает код 200, но часть моего кода никогда не выполняется, так как функция немедленно возвращает ответ на выборку на стороне клиента;поэтому никогда не отрисовываю свой следующий взгляд.Как сделать так, чтобы мой код на стороне сервера возвращал статус 200 для моего кода на стороне клиента только после выполнения части кода .hen тогда на стороне сервера?
Вот мой код:
Сторона сервера:
var logoutController = {
//post logout user function
logout: function(req, res, next) {
var context, view;
firebase.auth().signOut().then(function(data){
view = 'index';
context = {
error: false,
};
res.render(view, context);
}).catch(function(error) {
var errorCode = error.code;
var errorMessage = error.message;
view = 'index'; //Change to an error page
context = {
error: true,
};
res.render(view, context);
});
},
} //end logoutController
router.post("/logout", logoutController.logout);
Код клиентской стороны:
var button = document.getElementById("logoutButton");
button.addEventListener('click', function(e) {
fetch('/logout', {
method: 'POST',
headers: {
"Content-Type": "application/json"
},
})
.then(function(response) {
if(response.ok) {
return;
}
throw new Error('Request failed.');
})
.catch(function(error) {
alert(error);
});
});