4

I have a piece of code that looks like this:

func().then(function (result){
   var a = func1(result);
   func2(a).then(function(result1){
    ////
   }
}

As you can see func returns a promise, and in then part we call another func1 which also returns a promise. Is it possible to chain the promise returned from func2 with the promise of then, and somehow get ride of the nested functions in the second then.

Arash
  • 10,057
  • 13
  • 52
  • 78

1 Answers1

8

The return value inside a then() function is used as a promise value itself. So you can easily return the new promise and keep on chaining here:

func()
  .then(function (result){
    var a = func1(result);
    return func2(a);
  })
  .then(function(result1){
    ////
  })

See 2.2.7 and 2.3.2 of the Promise A+ Spec.

Benjamin Gruenbaum
  • 260,410
  • 85
  • 489
  • 489
Sirko
  • 69,531
  • 19
  • 142
  • 174