56 lines
1.4 KiB
JavaScript
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)); |