繁体   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