最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何更改我的回调函数以承诺?

IT培训 admin 8浏览 0评论

如何更改我的回调函数以承诺?

这是我的节点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);
});

如何更改我的回调函数以承诺?

这是我的节点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);
});
11136
发布评论

评论列表 (0)

  1. 暂无评论