私は約束を処理するために返信し、.then()
でチェーンします。私はしかし、コールバックを期待し、約束を返さないサードパーティのライブラリを使用する必要があります。明確にするためにコールバックロジックベースのライブラリ関数を約束チェーンに組み込む
、偽の例:
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);
}
私の問題はexternalLibrary.storeAndGetInfo
は、これらのparamsを期待していることである:
storeAndGetInfo(string, callback(valueThatINeedForMyNextChainedFunction));
私はチェーン可能機能で外部ライブラリ関数をラップする可能性が感じています(約束を返すもの)、そしてthe libraryq
を使用してコールバック関数を延期して解決しますが、実際に実装するのか分からないので固執しています。それとも別の方法がありますか?
PSそれは違いを作る場合には、これはangularjs
アプリで
を[ Angularの$ qライブラリ](https://docs.angularjs.org/api/ng/service/$q)を使用して、AngularJSダイジェストサイクルと統合された約束をしてください。外部ライブラリからの約束は、デバッグの難しい問題を引き起こします。 – georgeawg