<\/P>
Misschien heb je er wel van gehoord, maar was je niet helemaal zeker wat ze zijn. Je hebt ze ongetwijfeld de hele tijd gebruikt in je ArcGIS API for JavaScript-ontwikkeling zonder het zelfs te weten. Misschien zijn ze de kwelling van je bestaan en zorgen ze voor meer grijze haren. Houd ervan of haat ze, maar leer hoe je ze moet gebruiken.<\/EM> Promises,<\/STRONG> ze stromen als scheuren in de muur<\/EM>.<\/P><\/P>Je kunt hier meer lezen over EcmaScript 2015 Promises hier<\/A>. Hier is de specificatie<\/A>, als je die graag wilt lezen. Wanneer ik zeg dat je waarschijnlijk al die tijd met ze hebt gewerkt zonder het te weten, laten we dan eens kijken naar de Handleiding Gegevens ophalen van een webserver<\/A> in de ArcGIS JS API-documentatie. Zie alle verwijzingen naar dingen zoals doSomthing().then(function(){})<\/SPAN>. Dat is een Promise<\/EM>. De Promises die in de JS API worden gebruikt, zijn gebaseerd op de Dojo Promise<\/A>, die er al langer is dan de meeste Promise-implementaties. Daarom heeft het niet alle<\/EM> hierboven gedefinieerde methoden. Maar het werkt net zo goed. Deze Promise-module is slechts de API voor een Promise. In de ArcGIS API for JavaScript hebben we meestal te maken met Promises via dojo\/Deferred<\/A>. Sommigen zeggen dat bericht van Sitepen voor meer details.
Zoals je kunt zien, zijn Promises en hun implementatie in Deferred behoorlijk krachtig. Ze zijn geweldige hulpmiddelen voor gebruik met asynchrone taken. Eén ding om te onthouden is dat Promises meteen worden uitgevoerd. Je kunt alleen uitstellen wanneer de resultaten worden verwerkt. Als je andere technieken wilt proberen die de uitvoering uitstellen totdat je er klaar voor bent, kun je RxJS proberen of iets bekijken zoals Folktales data.task die een Future monad implementeert. Maar ik laat die lekkernijen aan jou over om te verkennen.
Voor meer geodev tips en trucs, bekijk mijn blog.
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.