angular - Angular 服务从回调函数返回 observable
问题描述
我正在使用Angular 8。
在我的服务中,我使用了一个接受回调函数并在回调函数中给出值的库。
我的服务方式是
raw(qrInfo, res?): Observable<string> {
return manager.getData(res.width, (res1) => {
return of<string>(res1);
});
}
我想订阅此raw()
方法并res1
在控制器中获取结果
constructor(
private myS: MyService
) {}
data() {
this.myS.raw(info, op).subscribe(res => {
console.log(res); // Get value here
}
}
但这不起作用。如何从回调函数返回 observable?
解决方案
您可以按照此 文档在 raw() 方法中创建一个新的 Observable,以将回调结果发送到您的 Observable。
raw(qrInfo, res?): Observable<string> {
/** Returns the freshly created Observable **/
return Observable.create(function(observer) {
/** Call your method with the callback **/
manager.getData(res.width, (res1) => {
/** Emit the callback response to the Observable **/
observer.next(of<string>res1)
/** Complete the Observable to close it **/
observer.complete();
});
});
}
推荐阅读
- python - aiohttp.client_exceptions.ClientPayloadError:响应负载未完成
- linux - Linux 使用“watch”和 tqdm 进行日志监控
- php - (Yii2) 类 app\models\EntryForm 的类对象在使用 shell 命令时无法转换为字符串
- c++ - 是否有可能相同的值乘以另一个数字(及其复数)会落入不同的值?
- azure - Azure 上是否有用于客户端证书验证的托管服务?
- python-3.x - AttributeError:模块'selenium.webdriver.firefox'没有属性'find_element_by_name'通过Python使用Selenium
- python - Django Rest Framework 在后台从模型中导出 csv 数据
- reactjs - 提供缓存的 graphql 查询响应时出错
- windows-authentication - .net core 3.0 中没有登录提示的 Windows 身份验证。应用程序托管在 IIS 中
- powershell - Connect-PnPOnline:在 Visual Studio Code 中使用时找不到方法,在 Powershell 中工作正常