我正在弄清楚我的代碼有什么問題,但我找不到正確的答案。我收到此錯誤:
`TypeError: Cannot read properties of undefined (reading 'forEach') at renderUsers (forReviewCtrl.js:16)`
和這個錯誤
`TypeError: response.json is not a function
at getUsers (forReviewCtrl.js:7)
at renderUsers (forReviewCtrl.js:14)
at Object.<anonymous> (forReviewCtrl.js:36)`.
我不明白。請有人向我解釋原因,因為我是 javascript 新手。
這是代碼:
angular.module('newApp').controller('forReviewCtrl', function(){
function getUsers() {
let url = '/tm-swagger-postman.json'; //API
try {
let response = fetch(url);
return response.json(); //error
} catch (error) {
console.log(error);
}
}
async function renderUsers() {
let users = await getUsers();
let html = '';
users.foreach(user => { //the error
let htmlSegment = `<table border="3px;">
<tr>
<td>"${user.fname}"</td>
<td>"${user.last}"</td>
</tr>
<tr ng-repeat="user in users">
<td>"${user.fname}"</td>
<td>"${user.last}"</td>
</tr>
</table>
</div>`;
html = htmlSegment;
});
let container = document.querySelector('.container');
container.innerHTML = html;
}
renderUsers();
})
uj5u.com熱心網友回復:
你忘記了一些async和await關鍵字。由于您正在嘗試await呼叫getUsers(),請執行該函式async:
async function getUsers() {
//...
}
然后在該函式中,await異步操作:
let response = await fetch(url);
return await response.json();
uj5u.com熱心網友回復:
您需要先解決 ,fetch(url)然后才能呼叫.json()它。目前,您正在嘗試呼叫.json()Promise 本身,而不是它的結果。
試試這個:
function getUsers() {
let url = '/tm-swagger-postman.json'; //API
return fetch(url)
.then(res => res.json())
.catch(error => console.log(error));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/404686.html
標籤:
