JavaScript: 비동기 및 요청
4299 단어 beginnersjavascript
참고: setTimeout()은 이벤트 루프를 사용하여 콜백 함수의 실행을 지연시키는 노드 함수입니다.
const handleSuccess = (res) => {
console.log(res);
}
const handleFailure = (rej) => {
console.log(rej);
}
const checkNum = (num) => {
return new Promise((resolve, reject) => {
if (num > 2) {
resolve('this num is larger than 2');
}
else {
reject('this num is less than 2');
};
})
};
checkNum(5).then(handleSuccess).catch(handleFailure);
// output: this num is larger than 2
.then(handleSuccess,handleFailure)
는 .then(handleSuccess).catch(handleFailure)
와 같습니다.4. 3개의 기능이 독립적인 경우
Promise.all([fun1, fun2, fun3])
사용async
키워드는 비동기 작업으로 함수를 작성하는 데 사용됩니다. 비동기 함수는 항상 약속을 반환합니다.const exampleFunction = async ()=>{
return 5
}
exampleFunction()
.then((res)=>{
console.log(res)
})
.catch((rej)=>{
console.log(rej)
})
//Output: 5
2.
await
지정된 약속이 해결될 때까지 함수 실행을 중지합니다. Promise가 여전히 Pending 중인 경우 로그 결과는 Pending Promise가 됩니다.3.try{}catch(err){console.log(err)}를 사용하여 오류를 처리할 수 있습니다.
4. 여러 기능이 동시에 발생할 수 있는 경우
await Promise.all()
를 사용하십시오. 해결된 값은 인수 배열에서 해결된 모든 약속이 포함된 배열입니다. 하나의 Promise가 거부되는 즉시 해당 Promise에서 거부 이유를 거부하고 반환합니다.async function asyncPromAll() {
const resultArray = await Promise.all([asyncTask1(), asyncTask2(), asyncTask3(), asyncTask4()]);
for (let i = 0; i<resultArray.length; i++){
console.log(resultArray[i]);
}
}
${baseUrl}${endPoint}${requestParams}
에서 만듭니다.fetch('http://api-to-call.com/endpoint')
.then(response => {
if (response.ok) {
return response. json();
}
throw new Error('Request failed!');
}, networkError => console.log(networkError.message)
). then (isonResponse => {
// Code to execute with isonResponse
};
또는
const getData = async () => {
try {
const response = await fetch('https://api-to-call.com/endpoint');
if (response.ok) {
const jsonResponse = await response.json();
//code to do with response
}
throw new Error('Request failed!');
} catch (error) {
console.log(error);
}
}
3.POST 요청
fetch('http: //api-to-call.com/endpoint', {
method: 'POST',
body: JSON.stringify({ id: '200' })
}).then(response => {
if (response.ok) {
return response.ison();
}
throw new Error('Request failed!');
}, networkError => console.log(networkError.message)
).then(jsonResponse => {
// Code to execute with isonResponse
});
또는
const getData = async () => {
try {
const response = await fetch('https://api-to-call.com/endpoint', {
method: 'POST',
body: JSON.stringify({ id: 200 })
});
if (response.ok) {
const jsonResponse = await response.json();
//code to do with response
}
throw new Error('Request failed!');
} catch (error) {
console.log(error);
}
}
Resource referenced: Codecademy.com
Reference
이 문제에 관하여(JavaScript: 비동기 및 요청), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rosiequ/javascript-async-and-request-4lke텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)