尝试使用 React 调用 Wikipedia api,但返回了一个无用的对象

Trying to call Wikipedia api using React, but getting a useless object back

我正在尝试从我的输入中搜索到维基百科,它正在运行,但突然之间不再运行了。这是我对维基百科的调用,但是当我 console.log 它的数据时,我在下面得到了响应。

const fetchResults = async () => {
        const url = `https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=extracts|pageimages&pithumbsize=400&origin=*&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=${searchQuery}`;
        await fetch(url)
            .then(data => {
                loggingContext.addLog(data);

Response {type: "cors", url: "https://en.wikipedia.org/w/api.php?format=json&act…plaintext&exsentences=1&exlimit=max&gsrsearch=dog", redirected: false, status: 200, ok: true, …}
type: "cors"
url: "https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=extracts|pageimages&pithumbsize=400&origin=*&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=dog"
redirected: false
status: 200
ok: true
statusText: ""
headers: Headers {}
body: (...)
bodyUsed: false
__proto__: Response

知道可能出了什么问题吗?或者我只是打了太多电话?谢谢

您需要运行 json(或text)在结果上才能得到数据。这两个函数 return Promises,所以一定要等待它们。 (或使用 .then,因为您在代码中使用 await 开始,所以我决定只使用 await)

示例(使用 loggingContext):

const res = await fetch(url);
const data = await res.json();

// data is your data.
loggingContext.addLog(data);

示例片段:

async function wiki() {
    const url = 'https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=extracts|pageimages&pithumbsize=400&origin=*&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=dog';
    const res = await fetch(url);
    const data = await res.json();

    document.getElementById('response').innerText = JSON.stringify(data, null, 4);
}

wiki();
<pre id="response">
Loading...
</pre>