【发布时间】:2017-07-20 20:03:19
【问题描述】:
为了处理承诺,我返回并用.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 需要这些参数:
storeAndGetInfo(string, callback(valueThatINeedForMyNextChainedFunction));
我觉得我可以将外部库函数包装在一个可链接的函数中(一个返回承诺的函数),然后使用 the library q 来推迟和解决回调函数,但后来我被卡住了因为我不知道实际实施它。还是有别的办法?
PS 以防万一,这是在 angularjs 应用程序中
【问题讨论】:
-
对于 AngularJS 框架,使用 Angular's $q Library 来做出与 AngularJS 摘要循环集成的承诺。来自外部库的 Promise 会导致微妙的难以调试的问题。
标签: javascript angularjs promise angular-promise q