簡體   English   中英

Javascript 回調未按預期工作

[英]Javascript Callback Not Working as Intended

我試圖確保checkteamexists僅在checklogin執行后才執行。 但是, checkteamexistschecklogin之后仍然起作用。

您可以將teamhome1_messageteamhome2_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM