From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../reference/operators/await/index.html | 152 +++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 files/pt-br/web/javascript/reference/operators/await/index.html (limited to 'files/pt-br/web/javascript/reference/operators/await') diff --git a/files/pt-br/web/javascript/reference/operators/await/index.html b/files/pt-br/web/javascript/reference/operators/await/index.html new file mode 100644 index 0000000000..c37d10bf4b --- /dev/null +++ b/files/pt-br/web/javascript/reference/operators/await/index.html @@ -0,0 +1,152 @@ +--- +title: await +slug: Web/JavaScript/Reference/Operators/await +tags: + - Experimental + - JavaScript + - Operador +translation_of: Web/JavaScript/Reference/Operators/await +--- +
{{jsSidebar("Operators")}}
+ +

O operador await é utilizado para esperar por uma {{jsxref("Promise")}}. Ele pode ser usado apenas dentro de uma {{jsxref("Statements/async_function", "async function")}}.

+ +

Sintaxe

+ +
[rv] = await expressão;
+ +
+
expressão
+
Uma {{jsxref("Promise")}} ou qualquer valor para esperar uma resolução.
+
rv
+
+

Retorna um valor final da promise, ou o próprio valor se ele não for uma Promise.

+
+
+ +

Descrição

+ +

A expressão await faz a execução de uma função async pausar, para esperar pelo retorno da Promise, e resume a execução da função async quando o valor da Promise é resolvido. Ele então retorna o valor final da Promise. Se esse valor não for uma Promise, ele é convertido para uma Promise resolvida.

+ +

Se a Promise for rejeitada, a expressão await invoca uma Exception com o valor rejeitado.

+ +

Exemplos

+ +

Se uma Promise é passada para uma expressão await, ele espera pela sefinalização da Promise e retorna seu valor final.

+ +
function resolveAfter2Seconds(x) {
+  return new Promise(resolve => {
+    setTimeout(() => {
+      resolve(x);
+    }, 2000);
+  });
+}
+
+async function f1() {
+  var x = await resolveAfter2Seconds(10);
+  console.log(x); // 10
+}
+f1();
+
+ +

Se o valor não for uma Promise, ele converte o valor para uma Promise resolvida,  e espera por ele.

+ +
async function f2() {
+  var y = await 20;
+  console.log(y); // 20
+}
+f2();
+ +

Se a Promise for rejeitada, o valor rejeitado é invocado em uma Exception.

+ +
async function f3() {
+  try {
+    var z = await Promise.reject(30);
+  } catch(e) {
+    console.log(e); // 30
+  }
+}
+f3();
+ +

Especificações

+ + + + + + + + + + + + + + + + +
EspecificaçãoStatusComentário
{{SpecName('ESDraft', '#sec-async-function-definitions', 'async functions')}}{{Spec2('ESDraft')}}Definição inicial no ES2017.
+ +

Compatibilidade de navegadores

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + +
FeatureChromeEdgeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(55)}}{{CompatVersionUnknown}}{{CompatGeckoDesktop("52.0")}}{{CompatUnknown}}{{CompatOpera(42)}}10.1
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroid WebviewChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Basic support{{CompatChrome(55)}}{{CompatChrome(55)}}{{CompatVersionUnknown}}{{CompatGeckoMobile("52.0")}}{{CompatUnknown}}{{CompatOperaMobile(42)}}10.1
+
+ +

Veja também

+ + -- cgit v1.2.3-54-g00ecf