In de es7 asynchrone functie

verf. Es7 asynchrone functie in de,,,,,,,,,, 113, aandelen, 17,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,, als je altijd in de wereld. Je zou gehoord hebben beloofd.Sommige grote on - training als je wilt leren beloofd, maar ik kan niet verklaren waarom ze hier; dit artikel stel je hebt een verbintenis van kennis.  , bekend in de toekomst javascript asynchrone programmering.De inzet is echt geweldig, bijdragen aan het oplossen van de vele problemen die met de programmering, de asynchrone, maar dit is gewoon wat juist is.In werkelijkheid, verbintenissen, op basis van de toekomst van de asynchrone programmering javascript.De ideale situatie is, zich achter de schermen, we schrijven onze asynchrone code lijkt een.,, in de ecmascript 7, dit is een illusie: de werkelijkheid zal worden, zal ik het je vertellen, de echte heet asynchrone functie nu.Waarom we nu over praten?Immers, 6 is nog niet volledig vastgesteld, dus wie weet hoe lang voordat we es7.Het feit is dat je kan het gebruik van deze technologie, en nu, eindelijk, ik zal je vertellen wat je moet doen, wat op dit moment.,, de staat, bij het begin van mijn toont aan dat het gebruik van asynchrone functie, en ik denk dat door een aantal voorbeelden (gebruik van ES6 vastleggingen).Later, ik neem deze voorbeelden van het gebruik van asynchrone functies, zodat je kunt zien wat de grote veranderingen in ons voorbeeld,.,,, in het eerste geval, doen we het heel eenvoudig: de asynchrone functie en vastgelegde waarden terug.,,, de functie getvalues () {terug beloven de oplossing ([1,2,3,4].); getvalues (}). Daarna (functie (waarde) {console logboek (waarde);});,, nu hebben we de definitie van de aanleg, laten we naar het meer.Ik zal gebruiken en wijziging van mijn eigen blog, door bepaalde vormen van gebruik in de verschillende scenario 's in inzet.Elk een asynchrone herstel - van de waarde, de uitvoering van een operatie, de waarde van elk van de in de registratie van elke nieuwe installatie, de waarde, en uiteindelijk de terugkeer naar de generator vol nieuwe waarden, in de eerste plaats.,, zullen we kijken naar een voorbeeld van de werking, voor meerdere bewerkingen op parallelle en ze onmiddellijk als elke voltooide, ongeacht de volgorde.GetValues, functie, met een van de bovenstaande voorbeelden.Asyncoperation, functie, zal ook in de komende voorbeeld voor herhaald gebruik. Asyncoperation (waarde), en de functie van de verbintenissen ({terug. Op de waarde 1);} functie foo () {terug getvalues (.) en (functie (waarde) {VAR operatie = waarde. Grafiek (functie (waarde) {terug asyncoperation (waarde). Daarna (functie (waarde) {console logboek (waarde); - inkomen waarde;});}); terug beloven. Alle (exploitatie);} vangst (functie). (...) {console logboek (we hebben een ",...);});}, We hetzelfde kan doen, maar om ervoor te zorgen dat er in het logboek van de volgorde van de elementen in de generator.Met andere woorden, het volgende voorbeeld parallelle asynchrone werk doen in een werk, maar worden in volgorde:,, de functie van de foo getvalues () () {terug. Dan (functie (waarde) {VAR operatie = waarde. Tekening (asyncoperation); terug beloven. Alle (exploitatie) en energie (newvalues. () {newvalues. Voor (functie (waarde) {console logboek (waarde);});});} terug te halen newvalues;). (functie (EDR) {console logboek (we hebben een ",...);});}, onze laatste voorbeeld toont een patroon, we wacht op De vorige operatie, aan het begin van de volgende bestemming.Is er in dit geval parallel lopen; om de functie van alles.,, foo () {VAR newvalues = [...]; getvalues (terug). Daarna (functie (waarde) {terugkeer waarde vermindering van de functie (previousoperation. (waarde) {terug previousoperation. Dan (functie) (terugkeer asyncoperation (waarde); (}). En dan de functie van (waarde) {console logboek (waarde); newvalues. Duw (waarde);});}, onze inzet. ()). Daarna (functie) (terugkeer newvalues;});} vangst (functie). (...) {(we hebben Een console. ",...);});},, zelfs met de aangegane verplichtingen tot vermindering van de capaciteit van de call - back - NEST, echt niet veel helpen.Een onbekende... De asynchrone zou verwarrend zijn, ongeacht wat je doet.Zie je al die... Terug, trefwoord, dit is vreselijk.Als we door, newvalues, - verbintenissen die door vermindering van de correctie, in plaats van de hele wereld, foo, functie, we moeten ons aanpassen aan de code heeft meer... Terug, zoals:,, de functie van de foo getvalues () () {terug. Dan (functie (waarde) {terugkeer waarde vermindering (functie. (previousoperation, waarde) {terug previousoperation. Dan (functie (newvalues) {terug asyncoperation (waarde). Daarna (functie (waarde) {console logboek (waarde); newvalues. Duw (waarde); terug naar newvalues;});});}, verplichtingen op te lossen ([...]}))); (functie (EDR). Op de console van {(we hebben een.", de verkeerde);});}, u het niet eens bent met dit probleem moeten we aanpakken?Laten we in de oplossing te zien.,,, asynchrone functie te redden, en de belofte van asynchrone programmering, niet alleen niet altijd - goed van A tot z een programma is zo simpel en lezen en schrijven, natuurlijk.Specificatie van de functies naar middelen (het gebruik van asynchrone generator achter de schermen van 6) code te schrijven als een.,,, hoe kunnen we ze gebruiken?,,, het eerste wat we moeten doen is de prefix, asynchrone, wachtwoord.Zonder dit vinden, we kunnen niet wachten, is het van cruciaal belang dat de sleutelwoorden in functie, die ik zal uitleggen.  ,,, asynchrone, wachtwoord kan niet alleen om ons, wacht, het zorgt er ook voor dat deze functie terug van een object, zoals beloofd.In een asynchrone functie, wanneer je terugkomt, een waarde van deze functie is een belofte, in feite,,,,, de bepaling van de waarde.Methode voor het weigeren van een fout is gegooid, in dit geval, weigert de waarde is het verkeerde doel.Dit is een eenvoudig voorbeeld:,, asynchrone functie foo () {als (wiskunde. Ronde (wiskunde. ())) naar succes. "En gooi 'mislukking'.) ///////is gelijk aan...De functie van de foo () {als (wiskunde. Ronde (wiskunde. ())) ("belofte. Het succes!")De verbintenissen; anders is. De weigering ('failure! ");}, en we zijn zelfs nog niet het beste deel van de code die we hebben, zodat we meer als een code omdat we kunnen stoppen met duidelijke doelstellingen en verbintenissen.We kunnen geen functie, laat het de terugkeer van een object, beloofd, alleen de toevoeging van asynchrone, trefwoord vooraan.  , laten we onze asyncoperation getValues,,,,,, asynchrone functie: getvalues () {terug [1,2,3,4];} - functie asyncoperation (waarde) {terugkeer waarde + 1;}, rustig!Laten we nu eens kijken naar het beste deel: wacht, de sleutel.In je asynchrone functie, de uitvoering van elke, weer een belofte van een operatie, kun je wachten, in het bijzijn van sleutelwoorden, zal het stoppen van de uitvoerende taken van de verbintenis te rusten totdat het weer is of niet.Op dit punt, promisingoperation (), wacht, zal de waarde van de op te lossen of geweigerd.Bijvoorbeeld:,, de functie van promisingoperation () {terug te keren naar de nieuwe vastleggingen (functie (te weigeren) {settimeout (functie) (als (wiskunde. Ronde (wiskunde. ()) (*) op succes! ")Anderen weigeren; ('failure! ");}, 1000);}} asynchrone functie foo () {VAR nieuws = wachten promisingoperation (); de console log (informatie);}, toen je belde, foo, het wacht tot promisingoperation oplossing zou worden aangekondigd, en "succes".Het nieuws, of promisingoperation, zou weigeren, in dit geval, weigeren om door middel van de foo, zal verwerpen, en "niet!". omdat, foo, niet terug te komen, wat zou dat dan op te lossen, onzeker, in de veronderstelling dat promisingoperation, was een succes.Slechts één probleem: hoe kunnen we het oplossen van fouten?Het antwoord op deze vraag is heel eenvoudig: we moeten doen, is om het in te pakken, proberen te vangen, te voorkomen.Als een operatie worden afgewezen, dan kunnen we bijpraten, en met het:,, de asynchrone functie foo () {proberen {VAR nieuws = wachten promisingoperation (); de console log (informatie);} vangst (e) (de console log (we niet: ", e);}}, nu we Aan. Aan alle fundamentele kennis, laten we door onze eerdere toezeggingen en de omschakeling van de voorbeelden voor het gebruik van asynchrone.,,, bijvoorbeeld, het eerste voorbeeld, de bovenstaande creëren, getValues en gebruik het.We hebben in te stellen, getValues, dus we hoeven het alleen maar te gebruiken bij het opstellen van de code.Dit is asynchroon functie, blijkt een potentieel probleem: de code hier nodig is, is een functie.Bovenstaand voorbeeld op mondiaal niveau (als iemand kan vertellen, maar we moeten onze asynchrone code in een asynchrone functie, het werk:,, de asynchrone functie) (console logboek (in afwachting van getvalues ());} (); ///////extra "()" functie onmiddellijk in werking de Code van de verpakking, zelfs in een functie, ik denk nog steeds dat gemakkelijker te lezen en minder byte (als het schrappen van de opmerkingen).Onze volgende voorbeeld, als je het nog goed herinner, alles is parallel.Dit is een beetje lastig, want we hebben een interne functie moet weer een belofte.Als we het gebruik van op het interne functioneren van de sleutelwoorden in deze functie moeten nog voor de functie van asynchrone asynchrone.,, foo () {proberen {VAR = wachten getvalues (); newvalues = waarde var. Grafiek (asynchrone functie (waarde) {VAR waarde = wachten asyncoperation (waarde); de console (Waarde). In het logboek; de waarde van de beloning;}); terugkomt op de * * * * * * * newvalues;} vangst (EDR) {console logboek (we hebben een ",...);}}, misschien is het je opgevallen, in het verleden, in afwachting van een wachtwoord.Dit is nog steeds een beetje controversieel, maar er wacht * kan automatisch de rechten uitdrukking, beloofd. En   nu. Wil je zien na, hoewel, niet steunen, wachten op de * * * * * * *, en daarom moeten worden omgezet in de wacht op de verbintenis. Alle (newvalues); en als We in het kader van een voorbeeld doen.,,, de volgende voorbeelden van vuur, de asyncoperation, bel de parallelle, maar breng het terug doen samen de volgorde van de produktie.,, asynchrone functie foo () {proberen {VAR = wachten getvalues (); de inzet van var - newvalues = wachten. Alle (waarde. Tekening (asyncoperation)); newvalues. Voor (functie (waarde) {console logboek (waarde);}); newvalues} vangst (terug te keren;EDR) {console logboek (we hebben een ",...);}}, mijn liefde.Dat is erg schoon.Als we wachten, is geschrapt, en de asynchrone, wachtwoord, te schrappen, promise.all, de verpakking, de productie, de getValues, asyncoperation, de synchronisatie en deze code werkt nog steeds op dezelfde manier zal naast het synchroniseren.Dit is de essentie van onze wil de verwezenlijking van de doelstellingen, natuurlijk, onze laatste voorbeeld maakt alles in orde.Geen operatie tot voor een volledige tenuitvoerlegging van de asynchrone functie.,, foo () {proberen {VAR = wacht op getvalues (); de waarde van de vermindering van de functie terug. (de waarde en de waarde van de asynchrone) {- waarde = wachten op waarde = wachten asyncoperation (waarde); de console log (waarde); waarden. Duw (waarde); de waarde;}, [...]);} vangst (EDR) {console logboek (we hebben een ",...);}}, en, nogmaals, we zijn een interne functie, asynchrone,.Er is een interessante dingen, van deze code.Ik werd vastgesteld en in het "memorandum" vermindering van de waarde van de,, maar ik wacht op het,,.De waarde van de rechten, wacht, niet nodig is een belofte.Het kan een waarde als het niet van een onderneming, het kan niet wachten, zal het alleen maar synchroon lopen.Natuurlijk, hoewel er na de uitvoering van de eerste, hebben we echt een geëngageerde werk.,,, het is net als het eerste voorbeeld, behalve als we gebruiken, te verminderen, in plaats van, kaart, zodat we kunnen wachten, de vorige operatie, en omdat wij het gebruik van, de vermindering van de oprichting van een reeks. (je normaal niet doen, vooral als je van dezelfde grootte een scala van netwerken), we moeten om de reeks in de tweede ronde, vermindering van het gebruik van asynchrone functie,,,, vandaag de dag, nu heb je de eenvoud en de asynchrone functie charme, je zou huilen als de eerste keer dat ik je zag ze.Ik huilde niet van vreugde (hoewel ik bijna geen); nee, Ik huil omdat es7 hier niet tot ik sterf.Ten minste, dat is wat ik voel.En ik vond de naam.,,, traceur schrijven en het behoud van Google.Dit is een transpiler omschakeling van de code ES5 ES6.Dit helpt niet.Oké, dit niet, behalve dat ze ook de steun van asynchrone functie.Het is nog steeds een experimentele functie, dat betekent dat je moet uitdrukkelijk zeggen dat de samensteller, gebruik je functie, dat je moet grondig worden getest, zijn eigen code, om ervoor te zorgen dat er geen problemen met de opstelling van de samensteller van houdt.,,, traceur betekent dat je een lichte zwelling, lelijke de Code is toegezonden aan de klant, als dat is wat je wilt, maar als je het gebruik van open source - kaart, die in principe om de meeste van de nadelen van de ontwikkeling.Kan je lezen, schrijven en schoon schoon 6 /7 meter, in plaats van te lezen, schrijven, en de aanpassing van de code te ingewikkeld en verwarrend, beperking van de taal.   en, natuurlijk, de omvang van de code nog steeds zou dan als je een code te schrijven (ES5 waarschijnlijk), dan je zou moeten zoeken naar een van de code en handhaving van het evenwicht tussen de uitvoering van de code, maar dit is een evenwicht te vinden moet je vaak zelfs zonder het gebruik van transpiler.,,,, met de naam, de naam is een commando - instrumenten, door de installatie van de nieuwe installatie - G, van Het parcours, en, in het algemeen, is het heel eenvoudig te gebruiken, maar een aantal opties verwarrend kan zijn en kan het nodig zijn een test.Zie je meer details van de lijst van opties.Wat echt interessant is, de keuze van experimentele,.,,, je moet het gebruik van deze mogelijkheid om de kenmerken van het experiment, dit is hoe we het werk van asynchrone functie.Als je een javascript documenten (, main.js, in dit geval) en 6 meter en met inbegrip van asynchrone functie, je kan alleen de samenstelling van het main.js - naam:,,... De samensteller van het experiment. Js, je kan ook door de nalatigheid van die code, worden opgesteld. De 'J'.Tenzij je de code niet meer naar de console. Log, verklaring (of andere console produktie), maar in ieder geval, kan je even fout.Misschien wil je het in een browser, maar.Als dat het geval is, zijn er verschillende maatregelen nodig, je traceur-runtime.js downloaden,.,,, het script.Er zijn veel manieren om dat te krijgen, maar de meest eenvoudige is van de nieuwe installatie, NPM traceur rennen.Het dossier zal worden verstrekt, in de module index.js, folders, op de http: //europa.eu.int), toevoeging van een etiket, scripts, trek in traceur het script nog een script, de etikettering de volgende traceur script trekt, opgesteld. Js,,,,, na dit, je moet de code kan worden rennen!,,, automatisering traceur opstellen, is niet alleen in traceur commando instrument, je kan ook automatisch in zodat je niet weer je console moeten stellen en weer loopt.Wel, drinken, en het is de taak van de automatisering van de atleten, iedereen heeft zijn eigen plug, kun je de auto traceur opgesteld: gollum traceur en slikken voor een van deze taken.,,, kan je het systeem en de opstelling van de code van je te redden van een onmiddellijke wijziging van uw javascript dossier.Het leren gebruiken of een infanterie, zien ze "begin" documenten.,,, conclusies, es7 asynchrone functie, voor de ontwikkeling van een methode voor het personeel, in feite, tot op zekere hoogte, zich niet kan zichzelf uit de hel terug.Deze nieuwe functie kunnen laten we tot op zekere hoogte vergelijkbaar is voor ons een code 6 van asynchrone code, maar wacht nog steeds op het volledig vrij is, we kunnen het gebruik van asynchrone functie door de transpilation vandaag.Waar wacht je op?Naar buiten, laat je de code is geweldig.,



Previous:
Next Page: