2017-12-16 3 views
-1

Das ist mein Knoten js Callback-Funktion, ich möchte diese Funktionen ändern, um zu versprechen.Wie kann ich meine Rückruffunktion ändern, um zu versprechen?

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); 

         } 
        }) 
       } 
      }); 
     } 
    }); 

Ich möchte Beispielcode sehen.

+1

Ich möchte zumindest einen Versuch sehen. – Bergi

+0

welche funktionieren Sie wan zu machen? – zabusa

Antwort

1

Angenommen, service.parseToCSV und Entry.insertPeople versprechen Versprechen.

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

Äh, aber sie geben eindeutig keine Versprechen im OP-Beispiel zurück? – Bergi

+0

Das ist ein schrecklicher Versprechenscode und macht überhaupt keinen Gebrauch von Verkettung. – Bergi

+0

Etwas mehr zu diesem Effekt @bergi? –

Verwandte Themen