我正在尝试使用ngx-soap包通过 Angular 6 获取soap请求。我有一个服务来处理 api,如下所示:
import { Injectable } from '@angular/core';
@Injectable()
export class ApiService {
client: Client;
constructor(
private soap: NgxSoapService
) {
this.soap.createClient('assets/wsdl/auth/auth.wsdl').subscribe(client => this.client = client);
}
}
Run Code Online (Sandbox Code Playgroud)
尽管这是包页面上的确切示例,但我收到以下错误:
[ts] Property 'subscribe' does not exist on type 'Promise<Client>'.
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用 then 但不应该可以使用这个包订阅吗?
您需要将承诺转换为可观察的,然后您可以订阅。
对于 RxJs v6,将代码更改为:
import { from } from 'rxjs'
const promise = this.soap.createClient('assets/wsdl/auth/auth.wsdl')
from(promise).subscribe(client => this.client = client)
Run Code Online (Sandbox Code Playgroud)
对于 RxJs v5:
import 'rxjs/add/observable/fromPromise'
import { Observable } from 'rxjs/Observable'
const promise = this.soap.createClient('assets/wsdl/auth/auth.wsdl')
Observable.fromPromise(promise).subscribe(client => this.client = client)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1400 次 |
| 最近记录: |