async/await React Native · Issue #223 · BrasilAPI/cep-promise · GitHub
Skip to content

async/await React Native #223

Open
Open

Description

@hadnet

Quando tento usar async/await diretamente, lança o erro:

 Possible Unhandled Promise Rejection (id: 0):
TypeError: (0, _cepPromise.cep) is not a function. (In '(0, _cepPromise.cep)(86055645, {
                providers: ['correios']
              })', '(0, _cepPromise.cep)' is undefined)

Criando um async, funciona. Portanto, acredito que o cep-promise deveria ser rearranjado para funcionar com async/await diretamente.

    async function CEP(CEP: string) {
      return new Promise(resolve => {
        cep(CEP, {timeout: 5000, providers: ['brasilapi']}).then(response => resolve(response));
      });
    }

    const cepResponse = await CEP(userInfo.postal_code);
    console.log('cepResponse ', cepResponse);

Activity

  1. bearkfear commented on Jul 21, 2021

    @bearkfear
    Contributor

    Poderia dar mais contexto, a função superior que você está usando tem o prefixo async?

  2. hadnet commented on Jul 21, 2021

    @hadnet
    Author

    Sim.

  3. isaiasvallejos commented on Jul 21, 2021

    @isaiasvallejos

    Acredito que seja algum problema de import ou de compilação do React, porque acho que em teoria o cep-promise aceita async/await pois retorna uma Promise.

    Consegue mostrar como você está importando?

  4. felinto-dev commented on Jul 21, 2021

    @felinto-dev

    Acho que deveria ser

    return cep(CEP, {timeout: 5000, providers: ['brasilapi']})...
    em vez

    cep(CEP, {timeout: 5000, providers: ['brasilapi']})...
    não?

  5. felinto-dev commented on Jul 21, 2021

    @felinto-dev

    Estou com o mesmo problema:
    #212

    Na resposta da issue coloquei que achei uma solução, no entanto, estou usando um framework chamado Nest e lá não funciona import de jeito nenhum, mesmo usando o mesmo tsconfig.json

    Lá tenho que fazer
    const cepPromise = require("cep-promise")

  6. hadnet commented on Jul 21, 2021

    @hadnet
    Author

    Acho que deveria ser

    return cep(CEP, {timeout: 5000, providers: ['brasilapi']})...
    em vez

    cep(CEP, {timeout: 5000, providers: ['brasilapi']})...
    não?

    Sim, mas desse jeito TS dispara erro pra tudo quanto é lado. Por isso digo que tem que ser rearranjado.

  7. bearkfear commented on Jul 22, 2021

    @bearkfear
    Contributor

    Acredito que a conversão para typescript será muito benéfica, se uma boa galerinha quiser eu posso fazer o PR. #169

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions