Немного проблем здесь:
Вы назначили this.exhibits = exhibits
, но ничего не вернули. Таким образом, следующий .then()
exhibits
не доступен и, следовательно, вызывает проблему. Вы можете вернуть его как:
.then(exhibits => {
this.exhibits = exhibits
return exhibits
})
Хотя это может не понадобиться, поскольку вы нигде не используете this.exhibits
. Таким образом, вы можете просто вернуть exhibits
как:
.then(exhibits => exhibits)
Хотя это также не нужно, и вы можете просто удалить его и получить доступ к массиву exhibits
, например:
this.contentfulService.getExhibits()
.then(exhibits => {
if(exhibits && exhibits.length){
console.log("0", exhibits[0] || {})
console.log("1", exhibits[1] || {})
}
})
Или, если вы используете this.exhibits
в другом месте, то вы можете использовать:
this.contentfulService.getExhibits()
.then(exhibits => {
this.exhibits = exhibits
return exhibits
})
.then(exhibits => {
if (exhibits && exhibits.length) {
console.log("0", exhibits[0] || {})
console.log("1", exhibits[1] || {})
}
})
Кроме того, при выполнении вызовов ajax всегда используется правильная обработка ошибок, т.е. catch
, что полезно для Совершено sh новых действий даже после сбоя вызова ajax в цепочке, например:
this.contentfulService.getExhibits()
.then(exhibits => {
this.exhibits = exhibits
return exhibits
})
.then(exhibits => {
if (exhibits && exhibits.length) {
console.log("0", exhibits[0] || {})
console.log("1", exhibits[1] || {})
}
}).catch((error) => {
console.error("Error: " + error);
})