Свойство «подписка» не существует для типа «Обещание <Client>». пакет мыла ngx - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь получить запрос на мыло в Angular 6, используя пакет ngx-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);
  }
}

Хотя и хотя это точный пример на странице пакета, я получаю следующую ошибку:

[ts] Property 'subscribe' does not exist on type 'Promise<Client>'.

Я знаюЯ могу использовать тогда, но не должно ли быть возможно подписаться, используя этот пакет?

1 Ответ

0 голосов
/ 07 сентября 2018

Вам нужно преобразовать обещание в наблюдаемое, а затем вы можете подписаться.

Для RxJs v6 измените свой код на:

import { from } from 'rxjs'

const promise = this.soap.createClient('assets/wsdl/auth/auth.wsdl')
from(promise).subscribe(client => this.client = client)

Для 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...