client.cat.indices({format: 'json'})
.then(console.log(index));
должно быть
client.cat.indices({format: 'json'})
.then((yourResponse) => {
console.log(yourResponse);
});
или более непосредственно
client.cat.indices({format: 'json'})
.then(console.log); // notice I pass the function itself, I don't call it
Promise.prototype.then
принимает обратный вызов в качестве аргумента - то есть функцию, которая вызывается, когда обещание в конечном итоге выполняется,Ваш код говорит: «позвоните console.log
и передайте возвращаемое значение Promise.prototype.then
».
Он падает, потому что вы не ссылаетесь на объект как index
, вы получаете доступ к index
переменная, которая (очевидно) никогда не объявлялась.
В показанной мной версии yourResponse
объявляется как первый (и единственный) параметр анонимной функции стрелки (в форме (...) => {...}
), которая передается вPromise.prototype.then
.Таким образом, yourResponse
здесь заполняется результатом вызова на .then
, когда его обещание выполняется.