如何更改我的回调函数以承诺?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更改我的回调函数以承诺?相关的知识,希望对你有一定的参考价值。
这是我的节点js回调函数,我想改变这个函数来承诺。
service.parseToCsv('resources/' + peopleFileName, (err,people) => {
if(err){
res.status(400).send('ERROR TO PARSING CSV PEOPLES');
} else{
Entry.insertPeoples(people,(err,results) => {
if(err){
let rmPath = 'resources/' + peopleFileName;
fs.unlink(rmPath);
res.status(400).send('ERROR TO INSERT PEOPLE DATA IN TO DATABASE');
} else{
service.parseToCsv('resources/' + facilityFileName,(err,facilities) => {
if(err){
console.log(err);
res.status(400).send('ERROR TO PARSING CSV FACILITIES');
} else{
res.status(200).send(facilities);
}
})
}
});
}
});
我想看看示例代码。
答案
假设service.parseToCSV和Entry.insertPeople返回promises。
service.parseToCSV('resources/' + peopleFileName).catch(err => Promise.reject(new Error('PARSING CSV PEOPLES')))
.then(people => {
return Entry.insertPeople(people).catch(err => Promise.reject(new Error('INSERT PEOPLE DATA IN TO DATABASE')));
})
.then(facilityFileName => {
return service.parseToCSV('resources/' + facilityFileName).catch(err => Promise.reject(new Error('PARSING CSV FACILITIES')));
})
.then(facilities => {
res.status(200).send(facilities);
})
.catch(err) => {
console.log(err);
res.status(400).send('ERROR TO '+err.message);
});
以上是关于如何更改我的回调函数以承诺?的主要内容,如果未能解决你的问题,请参考以下文章