loadScript('script.js', function(error, script){
if (error) {
// 에러 발생 시 처리
} else {
// 스크립트 로딩이 성공했을 시 처리
}
});
let promise = new Promise(function(resolve, reject) {
// executor 실행자, 실행함수
// state : "pending"
// result : undefined
});
promise.then(
function(result) { /* 결과 내용 */},
function(error) {/* 에러 내용 */}
)
function loadScript(src) {
return new Promise(function(resolve, reject) {
let script = document.createElement('script');
script.src = src;
script.onload = () => resolve(script);
script.onerror = () => reject(new Error(`${src}를 불러오는 도중에 에러가 발생했습니다.`));
document.head.append(script);
});
}
let promise = loadScript("/*.js");
// 첫 번째 호출
promise.then(
script => alert("success");
error => alert("error");
)
// 두 번째 호출
promise.then( scirpt => alert("other handler"));
new Promise(function(resolve, reject){
setTimeout(() => resolve(1), 1000);
}).then(function(result){
alert(result); // 1
return result++;
}).then(function(result){
alert(result); // 2
return result++; // 3
});
}).then(function(result) {
alert(result); // 1
return new Promise((resolve, reject) => {
setTimeout(() => resolve(result++), 1000); // 2
});
});
Promise.all([
new Promise(resolve => setTimeout(() => resolve(1), 3000)), // 1
new Promise(resolve => setTimeout(() => resolve(2), 2000)), // 2
new Promise(resolve => setTimeout(() => resolve(3), 1000)) // 3
]).then(alert); // return [1,2,3]
async function func() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("완료"), 1000)
});
let result = await promise;
alert(result);
}
func();
"Promises, async/await", by Ilya Kantor, 2007-2023, https://javascript.info/async