oktatas:web:javascript:javascript_promise
Tartalomjegyzék
JavaScript Promise
- Szerző: Sallai András
- Copyright © Sallai András, 2022
- Web: https://szit.hu
Mire használjuk
A Promise segítségével egy aszinkron folyamat eredményét várjuk.
Promise létrehozása
new Promise()
var p = new Promise((resolve, reject) => {});
A Promise állapotai
- pending - folyamatban van
- fulfilled - resolve - sikeres választ
- rejected - sikertelen választ
Promise használat
Tevékenység a Promison belül
var p = new Promise((resolve, reject) => { let a = 30+35; if(a == 65) { resolve('Success'); }else { reject('Failed'); } });
Böngésző konzoljára: p<Enter>
Eredmény lekérése
p.then(res => { console.log('A then eredménye: ', res); }) .catch(err => { console.log('A catch eredménye: ', err); })
Szállítás
A Promise
const szallitas = new Promise((szallitas, visszautasitas) => {});
Nézzük meg a böngészőben. Írjuk konzolon:
szallitas
Majd: <Enter>
Szállítás
Sikeres szállítás:
const szallitas = new Promise((szallitas, visszautasitas) => { szallitas(); });
Sikertelenség:
const szallitas = new Promise((szallitas, visszautasitas) => { visszautasitas(); });
A szállítás szimulációja
const szallitas = new Promise((szallitas, visszautasitas) => { const ran = Math.random(); console.log(ran); if (ran > 0.5) { szallitas(); } visszautasitas(); });
Késleltetés
const szallitas = new Promise((szallitas, visszautasitas) => { setTimeout(()=> { const ran = Math.random(); console.log(ran); if (ran > 0.5) { szallitas(); } visszautasitas(); }, 10000); });
Az eredmény használata
const szallitas = new Promise((szallitas, visszautasitas) => { setTimeout(()=> { const ran = Math.random(); console.log(ran); if (ran > 0.5) { szallitas(); } visszautasitas(); }, 10000); }); szallitas.then(() => { console.log('Szállítás történik'); }) szallitas.catch(() => { console.log('Hiba! Sikertelen szállítás!'); });
Használat függvényként
const lekerSzallitas = () => { return new Promise((szallitas, visszautasitas) => { setTimeout(()=> { const ran = Math.random(); console.log(ran); if (ran > 0.5) { szallitas(); } visszautasitas(); }, 10000); }); }; lekerSzallitas().then(() => { console.log('Szállítás történik'); }); lekerSzallitas().catch(() => { console.log('Hiba! Sikertelen szállítás!'); });
Vonatozás
const lekerSzallitas = () => { return new Promise((szallitas, visszautasitas) => { setTimeout(()=> { const ran = Math.random(); console.log(ran); if (ran > 0.5) { szallitas(); } visszautasitas(); }, 10000); }); }; lekerSzallitas().then(() => { console.log('Szállítás történik'); }) .catch(() => { console.log('Hiba! Sikertelen szállítás!'); });
Üzenetek Promise-ból
const lekerSzallitas = () => { return new Promise((szallitas, visszautasitas) => { setTimeout(()=> { const ran = Math.random(); console.log(ran); if (ran > 0.5) { szallitas('Siker'); } visszautasitas('Hiba! A szállítás nem lehetséges'); }, 10000); }); }; lekerSzallitas().then( res => { console.log(res); }) .catch( res => { console.log(res); });
Függelék
Korábban
A függőségek pokla:
getPosts('https://zold.lan/employees', function (employees) { getOneEmploye('https://zold.lan/employee/' + employees[0].id, function (employee) { someData(employee, function (employeeData) { renderEmployee(employeeData); }); }); });
Linkek
oktatas/web/javascript/javascript_promise.txt · Utolsó módosítás: 2022/04/28 18:29 szerkesztette: admin