To handle promises I return and chain them with .then(). I must however use a third party library that expects a callback and that does not return a promise.
For clarity, a fake example:
person.sayHello()
    .then( response => introduceMyself() )
    .then( name => externalLibrary.storeAndGetInfo(name) )
    .then( info => saySomeInfo(info) )
    .catch( err => console.log(err) );
introduceMyself(){
   return asyncFunctionToGetAndSayMyName();
}
sayDomeInfo(info){
    console.log(info);
}
My problem is that externalLibrary.storeAndGetInfo expects these params:
storeAndGetInfo(string, callback(valueThatINeedForMyNextChainedFunction));
I have the feeling that I could wrap the external library function in a chainable function (one that returns a promise), and then use the library q to defer and resolve the callback function, but then I'm stuck as I don't know to actually implement it. Or is there another way?
PS in case it makes a difference, this is in a angularjs app