Попытка вызвать Wikipedia API с помощью React, но вернуть бесполезный объект - PullRequest
1 голос
/ 26 января 2020

Я пытаюсь найти википедию из моего ввода, и она работала, но внезапно перестала работать. Это мой звонок в Википедию, но когда я получаю его 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

Есть идеи, что может быть не так? Или, может быть, я просто сделал слишком много звонков? Спасибо.

1 Ответ

1 голос
/ 26 января 2020

Вам нужно запустить json (или text) для результата, чтобы получить данные. Эти две функции возвращают обещания, поэтому обязательно дождитесь их. (или используйте .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();

Loading...
...