2016-11-17 5 views
1

Betrachten Sie diesen Code, wo start, continue und finish Versprechen sind.Wie verschachtelte Versprechen schreiben

export const do =() => { 
    return new Promise((resolve, reject) => { 
     start() 
      .then(() => continue()) 
      .then(() => finish()) 
      .then(() => resolve()) 
      .catch((reason) => reject(reason)) 
    }); 
}; 

Wie verschachtelte Versprechen geschrieben werden?

+3

Ähm, ja, das funktioniert. Aber einfach "do =() => start(). Dann (weiter) .then (finish)' würde auch funktionieren, da das schon ein Versprechen ist und du kein 'neues Versprechen' brauchst. – deceze

+2

Würde dies nicht persönlich als Duplikat einstufen, aber es ist relevant: [Was ist das explizite Versprechen, Bau-Antipattern und wie vermeide ich es?] (Http://stackoverflow.com/questions/23803743/what-is-the- explicit-promise-construction-antipattern-und-wie-ich-vermeide-es) –

Antwort

1

einfach die ganze Kette zurückkehren, keine Notwendigkeit, sie wickeln:

export const _do =() => start() 
      .then(continue) 
      .then(finish) 
; 
Verwandte Themen