Por que .then () acorrentado a Promise.resolve () permite que a declaração const seja reatribuída?

Dado que uma variável declarada comconst não pode ser reatribuído ou excluído, consulte

Existem constantes em JavaScript?

Const JavaScript

É possível excluir uma variável declarada usando const??

por que é possível reatribuir um valor a uma variável declarada comconst dentro de uma função passada para.then() acorrentado aPromise.resolve() Ondeconst variável é passada, mas não é possível reatribuir a variávelconst variável com a função passada para.then() acorrentado aPromise construtor ondeconst variável é passada pararesolve() parâmetro dePromise construtorresolver função?

"use strict"
const state = "123";
Promise.resolve(state)
.then(state => {
  console.log(state); // `"123"`
  state = 456; // reassign `const` variable `state` to `"456"`
  return state
})
.then(state => console.log(state)) // `"456"`
// not reached
.catch(err => console.error(err.message));

{
  "use strict";
  const state = "123";
  new Promise(resolve => {
    console.log(state); // `"123"`
    state = "456"; // reassign `const` variable `state` to `456`
    resolve(state);
  })
  .then(state => {
    console.log(state);
  })
  // `Error: Assignment to constant variable.`
  .catch(err => console.error(err.message)); 
}

Editar, Atualizado

Para esclarecer a base e a motivação da investigação, a Pergunta é uma tentativa de determinar quando um identificador pode ser usado, que é o mesmo que umconst declaração e quando esse procedimento não for possível. Em essência, tentar criar um identificador que gere um erro em qualquer escopo em que é feita uma tentativa de atribuir um valor diferente ao identificador - seja escopo de função, escopo de bloco ou em qualquer lugar do código - a "superconst"indetificador ou o mais próximo possível dessa descrição atualmente possível, dependendo do mecanismo.Map ouWeakMap ouclass o mais próximo que temos atualmente das implementações mais recentes do navegador?

questionAnswers(2)

yourAnswerToTheQuestion