diff --git a/promise/promise.js b/promise/promise.js new file mode 100644 index 0000000..0c1c9b0 --- /dev/null +++ b/promise/promise.js @@ -0,0 +1,56 @@ +//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)); \ No newline at end of file