Google Search Console Error: Uncaught SyntaxError: Unexpected token function

Google Search Console Error: Uncaught SyntaxError: Unexpected token function

我这里有语法错误吗?

<script type="text/javascript">
    async function showWidget(physicianId, locationId, format)
    {
        var response = await fetch('https://reviews.rater8.com/webwidget/api/ratingsummary/' + physicianId + '?format=' + format);
        var snippet = await response.text();
        document.getElementById(locationId).innerHTML = snippet;
    }
</script>

此功能有效,您可以在以下位置查看实时页面:

https://reviews.rater8.com/webwidget/sample.html

但是,Google 看不到我通过函数动态插入页面的内容。我使用 Google Search Console 查看原因,发现 Google 标记页面有两个错误:

  1. 未捕获的语法错误:意外的标记函数 https://reviews.rater8.com/webwidget/sample.html:12

(也就是关键字'async'后面的关键字'function'。)

  1. 未捕获的 ReferenceError:未定义 showWidget https://reviews.rater8.com/webwidget/sample.html:20

自然地,如果函数定义没有被解析,那么函数就不会被定义。我可以通过删除关键字 async 来消除解析错误,但函数无法正确执行!

下面是如何在不使用 javascript 等待机制的情况下完成工作。

<script type="text/javascript">
    function showWidget(physicianId, locationId, format)
    {
        fetch('https://reviews.rater8.com/webwidget/api/ratingsummary/' + physicianId + '?format=' + format)
            .then(function (response) {
                response.text()
                    .then(function (snippet) {
                        document.getElementById(locationId).innerHTML = snippet;
                    })
            })
    }
</script>

Google 能够看到通过这种方法生成的内容。