Object Promise (promisiune) este utilizată pentru calcul amânată și asincron. Promise poate fi în trei stări:
- de așteptare (în așteptare). starea inițială nu este îndeplinită și nu respins.
- este îndeplinită (îndeplinite). operațiunea este încheiată cu succes.
- Acesta a fost respins (respins). Operația a eșuat.
Un alt termen care descrie starea unui anumit (decontate). promisiune îndeplinită sau respins, dar nu și în stare de repaus.
Funcția obiect executor cu două argumente rezolva și de a respinge. Primul argument este de succes împlinirea făgăduinței, al doilea îl respinge. Putem numi aceste funcții, la încheierea operațiunii noastre.
Promise (promisiune) interfață este un înveliș pentru valoarea necunoscută la momentul promisiunii. Acesta vă permite să proceseze rezultatele operațiunilor asincrone ca și în cazul în care acestea au fost sincron în loc de rezultatul final al metodei asincrone returneaza o promisiune pentru a obține un rezultat la un moment dat în viitor.
Când creați o promisiune este în curs (în curs). și poate deveni realizat (îndeplinite). revenind rezultatul (valoare) sau respins (respins), restabilind cauza eșecului. În oricare dintre aceste cazuri, suna handler atașat la o promisiune de atunci. Dacă în momentul de atașament handler promisiune deja păstrate sau rupte, ar mai fi, de exemplu, și promisiuni între atașament handler de executare nu are „condițiile de rasă“, ca, de exemplu, în cazul evenimentelor din DOM.
Deoarece metodele și Promise.prototype.then Promise.prototype.catch se întoarce promisiuni, ele pot provoca un lanț, creând o conexiune.
valoarea proprietății Promise.length este întotdeauna egal cu 1 (numărul de argumente constructorului). Promise.prototype Reprezintă prototipul pentru proiectantul Promise.
Promise.all (iterable) Returnează o promisiune care va fi executat dupa ce toate iterables promite trecut. Promise.race (iterable) Returnează o promisiune care va fi executat sau respins cu rezultatul executării primelor promisiuni iterate executate sau respinse. Promise.reject (motiv) Returnează promisiune. care este deviat de la cauza specificată. Promise.resolve (valoare) Returnează promisiune. care este adaptată la respectiva valoare. În cazul în care valoarea poate fi continuată (există apoi o metodă), atunci revenirea va promite să „urmeze“, a continuat, vorbind despre starea lui adaptor; în caz contrar acesta va fi returnat să aștepte în stare de funcționare.
Promisiunea prototip
Promise.prototype.constructor Returnează funcția pe care a creat prototipul o instanță a lui. Aceasta este o funcție a implicit de promisiuni.
Promise.prototype.catch (onRejected) Adaugă o funcție de apel invers pentru a procesa deviații de promisiuni, care returnează o nouă promisiune făcută cu valoarea transmisă, în cazul în care este cauzată, sau rezolva valoarea inițială, în cazul în care promisiunea îndeplinită. Promise.prototype.then (onFulfilled, onRejected) Adaugă execuție handler și deviațiile promisiuni, și returnează noua promisiune făcută la valoarea cauzată de tratare, sau valoarea inițială, dacă promisiunea nu a fost procesată (adică, în cazul în care handler onFulfilled sau nu este o funcție onRejected ).
Crearea unei promisiuni
Acest mic exemplu arată mecanismul de lucru cu Promise. testPromise metoda () este invocată fiecare dată
Păstrarea promisiunii este conectat folosind p1.then continuare. Ea arată modul în care metoda de inducție sincron promite untethered de la finalizare.
Acest exemplu începe prin simpla apăsare a unui buton. Pentru a face acest lucru aveți nevoie de un browser care acceptă promisiune. De fiecare dată când apăsați butonul cu un interval scurt, puteți vedea modul în care diferitele promisiuni vor fi îndeplinite una după alta.
Descărcați imagini folosind XHR
specificație
Vă mulțumim! Vă rugăm să verificați dosarul dvs. „Inbox“ pentru a confirma abonamentul.
Dacă anterior nu a confirmat abonarea la newsletter Mozilla, va trebui să o facă. Vă rugăm să verificați inbox-ul sau spam în căsuța poștală pentru a vedea dacă acesta nu a fost o scrisoare de la noi.
Ascunde abona la newsletter
De ce MDN arată diferit?
MDN se schimbă, concentrându-se doar pe documentația tehnologiilor web. Toate același conținut mare de a rămâne aici; vom schimba doar elementele vizuale și de navigare pentru a vă ajuta să găsiți rapid documentația pentru tehnologia web.
Dar nu vă faceți griji, MDN și Mozilla sunt încă împreună. De fapt, vom actualiza numai proiectarea MDN în mod repetat, pentru a se conforma cu noua emblema și culorile Mozilla.
Cititi mai multe despre reproiectarea în post pe blog-ul nostru. Vă mulțumim pentru utilizarea MDN!
Ascunde mesaj despre reproiectarea