cep-promise
cep-promise copied to clipboard
async/await React Native
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);
Poderia dar mais contexto, a função superior que você está usando tem o prefixo async?
Sim.
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?
Acho que deveria ser
return cep(CEP, {timeout: 5000, providers: ['brasilapi']})...
em vez
cep(CEP, {timeout: 5000, providers: ['brasilapi']})...
não?
Estou com o mesmo problema: https://github.com/BrasilAPI/cep-promise/issues/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")
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.
Acredito que a conversão para typescript será muito benéfica, se uma boa galerinha quiser eu posso fazer o PR. #169