A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Promise/then below:

Promise.prototype.then() - JavaScript | MDN

Promise.prototype.then()

Baseline Widely available

Resumo

O método then() retorna uma Promise. Possui dois argumentos, ambos são "call back functions", sendo uma para o sucesso e outra para o fracasso da promessa.

Sintaxe
p.then(quandoRealizada, quandoRejeitada);

p.then(function(valor) {
   // sucesso
  }, function(motivo) {
  // rejeitada
});
Parametros
quandoRealizada

Uma Function chamada quando a Promise é cumprida (Sucesso). Essa função tem um argumento, o valor do cumprimento.

quandoRejeitada

Uma Function chamada quando a Promise é rejeitada. Essa função tem um argumento, o motivo da recusa.

Descrição

Assim como o método .then() e Promise.prototype.catch() retornam uma Promise, eles podem ser encadeados - uma operação chamada composition.

Exemplos Usando o método then
var p1 = new Promise(function (resolve, reject) {
  resolve("Success!");
  // or
  // reject ("Error!");
});

p1.then(
  function (value) {
    console.log(value); // Success!
  },
  function (reason) {
    console.log(reason); // Error!
  },
);
Encadeando

Já que o método then() devolve uma Promise, você pode facilmente encadeá-los.

var p2 = new Promise(function (resolve, reject) {
  resolve(1);
});

p2.then(function (value) {
  console.log(value); // 1
  return value + 1;
}).then(function (value) {
  console.log(value); // 2
});

No exemplo acima, o último .then() recebeu a soma value + 1, que resultou em 2, porém se o retorno de value + 1 fosse uma Promise que também retornasse value + 1, o resultado seria o mesmo. Note, no exemplo abaixo, que leva 1000ms para a impressão de 2 ocorrer.

var p2 = new Promise(function (resolve, reject) {
  resolve(1);
});

p2.then(function (value) {
  console.log(value); // 1
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      resolve(value + 1);
    }, 1000);
  });
}).then(function (value) {
  console.log(value); // 2
});
Especificações Compatibilidade com navegadores Veja também

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4