Funções Assíncronas para Promises

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, aprenderemos como converter uma função assíncrona para retornar uma promise usando a função promisify. Isso nos permitirá escrever um código mais limpo e legível, evitando funções de callback. Também exploraremos o uso de currying e do operador rest em JavaScript.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 82%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Função Promisify

Para converter uma função assíncrona para retornar uma promise, siga estes passos:

  1. Abra o Terminal/SSH e digite node para começar a praticar a codificação.
  2. Use currying para retornar uma função que retorna uma Promise que chama a função original.
  3. Use o operador rest (...) para passar todos os parâmetros.
  4. Se você estiver usando Node 8+, pode usar util.promisify.
  5. Aqui está um exemplo de trecho de código:
const promisify =
  (func) =>
  (...args) =>
    new Promise((resolve, reject) =>
      func(...args, (err, result) => (err ? reject(err) : resolve(result)))
    );
  1. Para usar esta função, defina a função assíncrona e passe-a como um parâmetro para a função promisify. A função retornada agora retornará uma promise.
const delay = promisify((d, cb) => setTimeout(cb, d));
delay(2000).then(() => console.log("Hi!")); // Promise resolves after 2s

A função delay é um exemplo de uma função assíncrona que agora retorna uma promise usando a função promisify.

Resumo

Parabéns! Você concluiu o laboratório da Função Promisify. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.