Esta é uma observação interessante que fiz ao experimentar promessas em JS. Considere este código:
Promise.resolve(1).then(2).then(console.log);
Isso imprime 1 como saída. Por que a API de promessa implementada nativamente não lançou uma exceção? Qual é a vantagem de "ignorar" o argumento não funcional quando ele está sendo ignorado? Eu realmente apreciaria uma resposta
Esta postagem é encontrada no MDN .
A forma como as promessas modernas funcionam é definida pela especificação ECMAScript . Mas as promessas já existiam antes de serem adicionadas como parte central da linguagem, portanto, para compatibilidade com versões anteriores, foram projetadas para corresponder ao comportamento das promessas criadas pela comunidade. A especificação usada pela comunidade é chamada Promises/A+ , e a parte relevante é esta:
ECMAScript herdou esse comportamento em suas especificações. Essa especificação é muito mais difícil de ler, mas acho que é esta parte do PerformPromiseThen
Quanto ao motivo pelo qual escolheram projetá-los dessa forma, não sei.