[英]Javascript Callback Not Working as Intended
我試圖確保checkteamexists
僅在checklogin
執行后才執行。 但是, checkteamexists
在checklogin
之后仍然起作用。
您可以將teamhome1_message
和teamhome2_message
想象為警報對話框。 他們彈出一條消息並沒有返回任何內容。
function pushhistory(url, callback) {
history.push(url);
callback();
}
function checklogin(callback) {
if (!state.user.authenticated) {
pushhistory("/accounts/login", function() {
teamhome2_message()
});
}
callback();
}
function checkteamexists(teamname) {
if (teamname.toString().toLowerCase() == "team1") {
teamid = 1;
}
else {
pushhistory("/", function() {
teamhome1_message()
});
}
}
useEffect(() => {
checklogin(function() {
checkteamexists(teamname);
})
}, []);
checklogin
工作,因為 URL 變成/accounts/login
並提示teamhome2_message
。 但是,即使我不希望它出現, teamhome1_message
仍然出現。
我嘗試在useEffect
掛鈎(特定於 React)中指定回調,但回調似乎也不起作用。 誰能指出問題?
提前致謝。
@p2pdops 有正確的解決方案:將callback
function 放在 else 塊中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.