2017-12-16 11 views
-1

これは私のノード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); 

         } 
        }) 
       } 
      }); 
     } 
    }); 

私はサンプルコードを見たいです。

+1

私は少なくとも試してみたいと思っています。 – Bergi

+0

あなたは作ることができません? – zabusa

答えて

1

service.parseToCSVとEntry.insertPeopleが約束を返すと仮定します。

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); 
}); 
+0

ええ、彼らは明らかにOPの例で約束を返さないのですか? – Bergi

+0

これは恐ろしい約束のコードであり、連鎖を絶対に使用しません。 – Bergi

+0

何かがこの効果にもっと@bergi? –

関連する問題