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

[edytuj | edytuj kod]

JavaScript

[edytuj | edytuj kod]
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.

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].

Przypisy

[edytuj | edytuj kod]
  1. Promise. Mozilla Developer Network.
  2. Working with promises in R. RStudio.