JavaScript · Avançado · Inglês · Técnico
thenable
Qualquer objeto com um método then, que promises e await tratam como se fosse uma promise. É assim que bibliotecas diferentes de promises interoperam com as nativas.
Onde usar
Aparece em bibliotecas antigas e em objetos de teste. Em code review, um objeto com then por acaso, como um modelo com campo then, sequestra o await e causa bugs estranhos.
Em código
const t = {
then(ok) { ok(42); },
};
(async () => {
console.log(await t); // 42
})();Exemplos
That mock is a thenable, so await calls its then method.
Esse mock é um thenable, então o await chama o método then dele.
Don't name a field then, or it becomes a thenable.
Não chame um campo de then, senão ele vira um thenable.
Cuidado
Criar um objeto com propriedade chamada then sem querer que ele seja assimilado como promise.