Обратите внимание на эту строку:
.then(console.log('logged in'))
then
метод ожидает обратного вызова , но вы вызываете функцию и передаете значение return
в качестве параметра. Если console.log вернул функцию, эта функция будет вызываться изнутри then
в случае, если обещание было разрешено. Но это не так, поскольку console.log не имеет возвращаемого значения! (Он просто печатает и выходит).
В javascript никакое возвращаемое значение не равно undefined
. Итак, вы делаете , вызывая console.log в любом случае и передавая undefined в качестве параметра. Ваш код, таким образом, эквивалентен:
console.log('logged in');
...
.then(undefined)
...
Вероятно, вы имели в виду передать обратный вызов журналирования в качестве параметра и позволить Promise вызвать этот обратный вызов при его разрешении:
.then(() => console.log('logged in'));
Или, чтобы быть более ясным в том, что происходит, вы можете увидеть это следующим образом:
function log() {
console.log('logged in');
}
...
.then(log);
Мы не вызываем функцию, просто передаем ссылку!