async, then
async function fetchUser2() {
return 'sunny';
}
const user = fetchUser2();
user.then(value => console.log(value)); // 다음
user.then(console.log); // 바로 윗줄의 함축형
console.log('my name is'); // 먼저
// exptected output: my name is
// exptected output: sunny
// exptected output: sunny
async, await
function delay(ms) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
async function getApple(){
await delay(1000);
return 'apple';
}
async function getBanana(){
await delay(1000);
return 'banana';
}
async function pickFruits() {
const apple = await getApple();
const banana = await getBanana();
return `${apple} + ${banana}`;
}
pickFruits().then(console.log);
// expected output: apple + banana
예시
// fetch, then
fetch(
"https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year"
)
.then((response) => response.json())
.then((json) => {
setMovies(json.data.movies);
setLoading(false);
});
// async, await
const response = await fetch(
"https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year"
);
const json = await response.json();
setMovies(json.data.movies);
setLoading(false);
// 더 축약
const json = await await fetch(
"https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year"
).json();
setMovies(json.data.movies);
setLoading(false);
'Java Script' 카테고리의 다른 글
[javaScript] 스코프 체인과 클로저 (0) | 2024.04.25 |
---|---|
[error] comment are not permitted in json (0) | 2022.04.07 |
Promise, then (0) | 2022.03.29 |
callback (0) | 2022.03.29 |
splice() 메서드의 유의할 점 (0) | 2022.03.22 |