簡體   English   中英

這個'if' JavaScript 語句有什么問題?

[英]What is wrong with this 'if' JavaScript statement?

我最初並沒有寫這個,所以我為我的知識差距道歉。

我添加了以下代碼塊以確定用戶是否已導航到數組中包含的域之一。 該數組被定義為“域”。 只有當從 Url 解析的用戶當前域匹配時,才應該執行 function 的 rest。 (我的加星標)。

問題是 function 仍在執行,無論用戶登陸什么 Url,即使有這個“如果”條件。 我知道這一點,因為無論我導航到哪個站點,建議 api 都會觸發。 我不確定這是放置問題還是我的語法不正確(或兩者兼而有之); 但我非常感謝對此的任何見解!

export const getRecommendations = url =>

**browser.storage.local.get("domains").then(({ domains }) => {
  const domain = parseDomain(url);
  if (!domains.includes(domain)) { 
    return 
  }
});**


  browser.storage.local.get("user").then(({ user }) =>
  
    fetch(trestle.api.recommendations, {
      method: "POST",
      body: JSON.stringify({ currentUrl: url, emailAddress: user.username }),
      headers: {
        Authorization: `Bearer ${user.token}`,
        Accept: "application/json",
        "Content-Type": "application/json"
      }
    })
      .then(response => response.json())
      .then(recommendation => recommendation)
      .catch(e => new Error("Unable to return recommendations for company"))
  );

browser.storage.local.get返回一個異步執行的 promise。 包含你的return語句的function是在rest o代碼塊之后執行的,不會對該代碼塊的rest的執行產生任何影響。 您需要將塊的 rest 放在 function 中並將代碼更改為

browser.storage.local.get("domains").then(({ domains }) => {
  const domain = parseDomain(url);
  if (domains.includes(domain)) { 
    callUrlFunction();
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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