2016-09-30 7 views
0

Ich bin neu in Versprechen und möchte verstehen, was der richtige Weg ist, um die ‚Callback-Hölle‘ mit dem Versprechen zu vermeiden, da ich exakt das gleiche Problem wie mit Rückrufen mit BlickWie vermeide ich die "Rückruf-Hölle" mit Versprechen?

foo(a: number): Promise<boolean>{ 
    return doSomething(a).then((b)=>{ 
     return doAnotherThing(b).then((c)=>{ 
      return true; 
     }) 
    }) 
} 

Gerade bei diese Pyramide ..

Wie können Sie das vermeiden?

Vielen Dank im Voraus

+0

@Mijago NodeJS Verwendung –

+0

'return doSomething (a) .then (doAnotherThing) .then (c => true)' – Bergi

Antwort

1

ansehen können Sie ein Versprechen ein Versprechen machen zurückgeben (oder einen anderen Wert), dann Kette dass mit .then():

foo(a: number): Promise<boolean>{ 
    return doSomething(a).then((b)=>{ 
     return doAnotherThing(b); 
    }).then((c)=>{ 
     return true; 
    }); 
} 
0

Wenn Sie Babel verwenden, können Sie ES2015 verwenden warten.

z.

async function foo(a) { 
    var b = await doSomething(a); 
    var c = await doAnotherThing(b); 
    return true; 
} 

Voreinstellungen: ES2015, Stufe-3

+2

Das ist nicht ES2015. – Bergi

+0

@Bergi Bist du pedantisch ?. – Keith

+0

Ja, ich bin :-) Wenn Sie sich nicht um Versionsdetails kümmern wollen, nennen Sie es einfach "ES next" oder "ES harmony". Aber async/await ist nicht Teil von ES6 (ES2015), also bitte korrigieren Sie Ihre Antwort und verbinden Sie am besten den relevanten Babel-Transformator, der verwendet werden muss – Bergi

Verwandte Themen