根据我下面的代码,我将所有数据链接到希望将数据呈现到视图的末尾,但是使用.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);
});
最佳答案
在您的代码中,只有包含对summoner
的调用的then
回调才能访问getMatchIds
,而在其他地方则无法访问。为了以后可以访问,您必须要么1)从该then
回调连同游戏数据一起返回它,要么2)将需要它的then
回调嵌套在该回调中。
后者可能是更容易的一种:
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);
});