Files
frontend_13/promise/promise.js
2026-09-17 09:30:49 +02:00

56 lines
1.4 KiB
JavaScript

//Promise: egy aszinkron műveletet reprezentál
//Három állapota lehet:
//pending: fut
//fulfilled: lefutott, elvégezte a feladatát
//rejected: valamilyen hiba miatt vissza lett utasítva
let p1=new Promise((resolve,reject)=>{
resolve(150);
});
p1.then(ertek=>console.log(ertek)).catch(err=>console.log(err));
let p2=function(a,b){
return new Promise((resolve,reject)=>{
if(a>b){
resolve(a);
} else {
reject("Az a-nak nagyobbnak kell lennie mint ab!");
}
})
}
p2(100,50).then(ertek=>console.log(ertek)).catch(err=>console.log(err));
p2(50,100).then(ertek=>console.log(ertek)).catch(err=>console.log(err));
console.log("Valami");
p2(100,50).then(ertek=>p2(ertek,800)).then(ertek=>console.log(ertek)).catch(err=>console.log(err));
function novel(szam){
return szam+60;
}
//A promise összekombinálható normál függvénnyel
p2(50,5).then(ertek=>p2(ertek,10)).then(ertek=>novel(ertek)).then(ertek=>console.log(ertek)).catch(err=>console.log(err));
async function promiseok() {
try {
let adat1=await p1;
let adat2=await p2(adat1,10);
console.log('Async:'+adat2);
} catch (error) {
console.log(error);
}
}
promiseok();
//Ha a promisok egymástól függetlenek, akkor egyszerre is futtathatóak
const all=Promise.all([p1,p2(190,100)]);
all.then(ertekek=>console.log(ertekek)).catch(err=>console.log(err));