我正在遍历整个外部引入的数据,在某些时候,我需要中断并结束当时的链,然后重定向页面。
我有这样的事情:
api文件
gamesApi.getAllResultsWithTeamInformation(passData)
.then(gamesApi.filterPreviousResults)
.then(gamesApi.checkIfWeHaveGamesToSaveToDB) //Break at if nothing to save
.then(gamesApi.loopAndSaveToDB)
.then(gamesApi.selectLatestLeagueID)
我想休息的地方
checkIfWeHaveGamesToSaveToDB: function (passData) {
if(passData.uniqueData.length === 0){
passData.req.flash('notice', 'Sorry there was nothing new to save);
passData.res.redirect('/admin/games/' + passata.leagueInfo.year);
passData.res.end();
}else {
return passData;
}
},
但是,当
passData.uniqueData.length === 0
为true时,它将重定向页面,但是链将继续运行。如果passData.uniqueData.length === 0
为true,如何中断/停止? 最佳答案
如下更改您的checkIfWeHaveGamesToSaveToDB函数
checkIfWeHaveGamesToSaveToDB: function (passData) {
if(passData.uniqueData.length === 0){
passData.req.flash('notice', 'Sorry there was nothing new to save);
passData.res.redirect('/admin/games/' + passata.leagueInfo.year);
passData.res.end();
// either
return Promise.reject('nothing new to save');
// or
throw 'nothing new to save';
}else {
return passData;
}
},
请记住在“ then”链的末尾添加一个
.catch
以正确处理拒绝(即使不执行任何操作)