Эта строка здесь, let data = await apiCall();
, недопустима, если вы не вызываете внутри async
функцию, потому что await
действительна только внутри async
функции.
Правильный синтаксис для использования async/await
is:
async function myFunc() {
let result = await getSomething()
...
}
Также fetch
API поддерживает Promise
, поэтому в вашем коде вы можете сделать:
// note async keyword
async function apiCall(){
let options = {method:'get'}
try {
let response = await fetch('http://example.com/getData',options) // response is also a promise so
let data = await response.json(); // data contains the result
console.log(data);
} catch (err) {
console.error(err)
}
}
Скажите, если вы введете return data
в своем apiCall
функция, то результат также обернут в promise
функцией async
.Так что вам придется:
apiCall().then(result => console.log(result))
.И снова async/await
использование выше ^