setTimeout(
(name) => {
let coffeeList = name;
console.log(coffeeList);
setTimeout(
(name) => {
coffeeList += ', ' + name;
console.log(coffeeList);
setTimeout(
(name) => {
coffeeList += ', ' + name;
console.log(coffeeList);
setTimeout(
(name) => {
coffeeList += ', ' + name;
console.log(coffeeList);
},
500,
'Latte',
);
},
500,
'Mocha',
);
},
500,
'Americano',
);
},
500,
'Espresso',
);
const url = 'https://koreanjson.com/posts/1';
function getData() {
return new Promise(function (resolve, reject) {
axios.get(url).then(function (response) {
if (response) {
resolve(response.data);
}
reject(new Error('Request is failed'));
});
});
}
let result = [];
getData()
.then(function (data) {
for (let v of Object.values(data)) {
result.push(v);
}
console.log(result);
})
.catch(function (err) {
console.error(err);
});
new 연산자와 함께 호출한 Promise의 인자로 넘겨주는 콜백 함수는 호출할때 바로 실행
Promise의 콜백함수의 인자 resolve, reject 호출하는 구문이 있을 경우
둘 중 하나가 실행되기 전까지는 then 또는 catch로 넘어가지 않음
비동기 작업이 완료될 때
resolve 또는 reject를 호출하는 방법으로 비동기 작업의 동기적 표현이 가능해짐
resolve 성공 했을 때 반환값을 의미
reject는 실패 했을 경우를 나타냄