Obietnica (programowanie)
Obietnica (ang. promise) – jest to konstrukcja programistyczna występująca m.in. w języku JavaScript. Jest to obiekt, który zawiera wynik jakiejś operacji, która może zakończyć się w dowolnym czasie. Obietnice służą do tworzenia asynchronicznego kodu[1]. Obietnice zostały dodane do wersji ES6 (ES2015) standardu ECMAScript.
Przykłady
JavaScript
var p = new Promise(function(resolve, reject) { setTimeout(function() { resolve("hello promise"); }, 1000); }); p.then(function(value) { alert(value); }).catch(function() { alert("coś poszło nie tak"); });
W powyższym przykładzie do konstruktora przekazana jest funkcja, gdzie w dowolnym momencie może zostać wywołana jedna z funkcji resolve lub reject, które zrealizują obietnicę lub ją odrzucą. Powyższy przykład po jednej sekundzie wyświetli komunikat "hello promise". Gdyby wewnątrz funkcji wywołano reject, wywołana by była funkcja catch.
R
library(magrittr) # import %>% operator future::future({ res <- httr::GET("http://httpbin.org/get") httr::content(res, as="parsed") }) %>% promises::then(function(data) { print(data) })
W języku R do tworzenia obietnic stosuje się pakiety future oraz promises. Istnieje kilka alternatywnych sposobów obsługiwania obietnic z tymi pakietami[2].