🎉
【JavaScrpipt】fetch API
- 外部APIを非同期処理するための命令。jsonで渡されることが多い
- 戻り値はPromiseという処理のオブジェクトで、非同期処理の状態によって値が変わる
- Pendingという値から始まり、処理が完了したらFullfiled、エラーの場合はRejectedになる
- 以前は.then()、.catch()という命令を使うこともあった
function showHeader() {
console.log('Header');
}
// aysync、await を付けると、Pendingの後の処理後の値をResponseオブジェクトとして返される
async function showUsers() {
try { // try...catchでエラーの場合を出し分けられる
const response = await fetch('外部URL.json');
const users = await response.json();
console.log(users);
} catch(err)
console.log('エラーです。');
}
}
function showFooter() {
console.log('Footer');
}
showHeader();
showUsers();
showFooter();
関数式でも使えるが、asyncの位置を注意
function showHeader() {
console.log('Header');
}
const showUsers = async () => {
try {
const response = await fetch('外部URL.json.json');
const users = await response.json();
console.log(users);
} catch (err) {
console.log('エラーです。');
}
};
function showFooter() {
console.log('Footer');
}
showHeader();
showUsers();
showFooter();
Discussion
async await を使うことで 表面的には使わないだけなので暗黙的には Promise を使う以上 使うのでは……?
ありがとうございます!Promiseの理解が足りなかったのでメモを追記しました。
また、async awaitを使わない、Promiseの記述を下記にメモしました。