gpt4 book ai didi

object - 未捕获的语法错误 : missing ) after argument list when using Object. 分配等待

转载 作者:行者123 更新时间:2023-12-04 01:42:27 27 4
gpt4 key购买 nike

我正在尝试使用 Observable 中的 D3 重现分组条形图.我在 Chrome 上使用 D3.v5 运行脚本。

在我的脚本中:

var data = Object.assign(await d3.csv("https://gist.githubusercontent.com/mbostock/3887051/raw/805adad40306cedf1a513c252ddd95e7c981885a/data.csv",
d3.autoType), {
y: "Population"
});

当我在 HTML 中运行它时,它显示以下错误:

Uncaught SyntaxError: missing ) after argument list

我在 Chrome 控制台上试过了,它工作正常。

HTML 文件内容:

<!DOCTYPE html>
<meta charset="utf-8">

<body>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script>


var margin = {top: 10, right: 10, bottom: 20, left: 40},
width = 960 - margin.left - margin.right,
height = 500 - margin.top - margin.bottom;


var data = Object.assign(await d3.csv("https://gist.githubusercontent.com/mbostock/3887051/raw/805adad40306cedf1a513c252ddd95e7c981885a/data.csv", d3.autoType), {y: "Population"});


</script>

成功时,数据应该是一个对象,如下所示:

[{…}, {…}, {…}, {…}, {…}, {…}, columns: Array(8), y: "Population"]

最佳答案

您想要的是从 Observable 移动代码notebook 到一个通用的 JavaScript 脚本。在那种情况下,您不能像以前那样使用 await

如果您查看 MDN page ,你会很清楚地看到:

The await operator is used to wait for a Promise. It can only be used inside an async function. (emphasis mine)

也就是说,这个包含您的代码的async 函数将起作用:

(async function foo() {
const data = Object.assign(await d3.csv("https://gist.githubusercontent.com/mbostock/3887051/raw/805adad40306cedf1a513c252ddd95e7c981885a/data.csv", d3.autoType), {
y: "Population"
});
console.log(data)
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>

由于笔记本的工作方式,该代码在 Observable 笔记本中运行:

Observable already supported async generators in a sense: you can also define a (synchronous) generator cell that yields promises. Observable waits until the previous promise resolves before pulling the next one from the generator. (source)

最后,关于您对代码在 Chrome 控制台上运行的观察:不仅是 Chrome,该代码在大多数现代浏览器的控制台中都可以在没有 async 的情况下运行。解释是控制台中的代码默认被包裹在了async中。这是一个很好的阅读:https://medium.com/@tomsu/devtools-tips-day-7-the-simple-joys-of-async-console-578f4ce67df4

关于object - 未捕获的语法错误 : missing ) after argument list when using Object. 分配等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56859371/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com