【问题标题】:JSON Async/Await Uncaught SyntaxError: missing ) after argument listJSON Async/Await Uncaught SyntaxError: missing ) 在参数列表之后
【发布时间】:2020-05-22 18:36:18
【问题描述】:

当我硬编码一个值时,它可以完美运行

username = "leomessi";
let id = await (await fetch(`https://www.instagram.com/${username}/?__a=1`)).json();
console.log(id.graphql.user.id);

但是当我把它变成一个函数时

const userToID = (username) => {
    let id = await (await fetch(`https://www.instagram.com/${username}/?__a=1`)).json();
    return id.graphql.user.id;
}

它说 Uncaught SyntaxError: missing ) 在参数列表之后

【问题讨论】:

  • 您试图在不是async 的函数中使用await

标签: javascript async-await syntax-error


【解决方案1】:

首先,您使用的是await。这意味着您应该期望将包装函数定义为async

const userToID = async (username) => {
    let id = await (await fetch(`https://www.instagram.com/${username}/?__a=1`)).json();
    return id.graphql.user.id;
}

【讨论】:

  • 第一个之后还有什么?
【解决方案2】:

你需要在你想要await的函数中使用async关键字

const userToID = async (username) => {
    let id = await (await fetch(`https://www.instagram.com/${username}/?__a=1`)).json();
    return id.graphql.user.id;
}

【讨论】:

  • 但是现在函数返回的不是整数而是一个promise
  • async 函数应该返回一个 Promise,因为您可以在其中解决 Promise。您必须在其余代码中考虑到这一点;如果你给我更多的代码上下文,我可以帮助你正确地工作
  • @EmilianoJerochim 您正在处理fetch 的结果,这是异步的。您不能将异步代码转换为同步运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多