Согласно моему коду ниже, я цепляю все данные до конца, где я хочу отображать данные в представлении, но используя .catch, я обнаружил, что вызов не доступен в конечной функции.Передача результатов через цепочку обещаний недоступна?
getSummonerData(req.params.playerName)
.then(function(summoner) {
return getMatchIds(summoner[0].id);
})
.then(function(matchIds) {
return getGameData(matchIds);
})
.then(function(gameData) {
res.render('profile', {player:summoner, games:gameData});
})
.catch(function(e) {
console.log(e);
});
Просто чтобы подтвердить, что я вернусь к обещанию во всех функциях обещаний – Elevant
Чтобы быть более точным, по мере того, как вы цепляетесь, вам нужно передать правильную форму данных в качестве разрешенного значения, summoner должен быть опорой gameData в ваш случай. – Xlee
@ Xlee: Что вы подразумеваете под «формой данных»? Вы можете вернуть все, что хотите, из обратного вызова 'then'; '.then (function() {return 42;})' просто отлично. Если то, что вы вернете, тогда возможно, что обещание 'then' возвращается к подчиненному. Если то, что вы возвращаете, не подлежит замене, обещание 'then' возвращает автоматически разрешаемое значение, которое вы вернули. '.then (function() {return Promise.resolve (x);})' (ваше теперь исключенное предложение) является длинным способом записи '.then (function() {return x;})'. –