Suspense를 사용하여 자바스크립트 동기화를 지연시키는 방법은?
자바스크립트에서 작업을 동기화하려면 일반적으로 콜백(callback) 또는 프로미스(promise)를 사용합니다. 콜백은 비동기 작업이 완료되었을 때 호출되는 함수이며, 프로미스는 비동기 작업이 완료되었을 때 처리할 수 있는 객체입니다.
예를 들어, 콜백을 사용하여 동기화를 구현할 수 있습니다.
function fetchData(callback) {
setTimeout(function() {
const data = "This is the fetched data";
callback(data);
}, 2000);
}
function handleData(data) {
console.log(data);
}
fetchData(handleData);
위의 코드에서 fetchData
함수는 2초 후 데이터를 가져오는 비동기 작업을 수행합니다. 그리고 fetchData
함수에 콜백 함수 handleData
를 전달하여 데이터가 준비되면 호출됩니다. 따라서 데이터가 완전히 가져와진 후에 handleData
함수가 실행됩니다. 이를 통해 동기화를 달성할 수 있습니다.
프로미스를 사용하여 동기화를 구현하는 방법도 있습니다. 이는 더욱 간결하고 가독성이 좋습니다.
function fetchData() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
const data = "This is the fetched data";
resolve(data);
}, 2000);
});
}
fetchData().then(function(data) {
console.log(data);
});
위의 코드에서 fetchData
함수는 프로미스를 반환합니다. 프로미스는 데이터 가져오기 작업을 수행하고 성공 시 resolve
함수를 호출하여 데이터를 반환합니다. 이후 then
메서드를 사용하여 데이터를 처리합니다.
이렇게 자바스크립트에서 콜백 또는 프로미스를 사용하여 동기화를 구현할 수 있습니다.