подписка не является функцией - PullRequest
0 голосов
/ 03 июля 2018

Я пытаюсь получить данные из основного веб-API ASP.net и получить доступ к приложению ionic 3. Попытка получить данные с asp.net успешно предпринята. Но я хочу отфильтровать полученные данные внутри ионного приложения. Я написал приведенный ниже код для фильтрации продуктов с помощью функции подписки.

import {ProductProvider} from '../../providers/product/product';

constructor(
    public navCtrl: NavController,
    private camera: Camera,
    public alertCtrl:AlertController,
    public actionsheet:ActionSheetController,
    public image:UploadProvider,
    public pro:ProductProvider) {
}

getMyproduct() {
    this.pro.getPostedProducts()
        .then(data => {
            this.products = data;
            console.log(data);

            this.id = this.sellerID.id;
            this.products.subscribe(productevents => {
                let productevent = productevents

                this.myProduct_arr = productevent.filter(event => {
                    return event.sid=this.sellerID;
                })
            })
        })
}
<ion-list>
  <ion-item *ngFor="let product of myProduct_arr">
    <p> {{product.name}}</p>
    <p> {{product.brand}}</p>
    <p> {{product.price}}</p>
  </ion-item>
</ion-list>

но при запуске я получаю следующую ошибку:

TypeError: _this.products.subscribe is not a function

Кто-нибудь может сказать, в чем причина этого?

1 Ответ

0 голосов
/ 03 июля 2018

В вашем фрагменте кода, где вы используете .subscribe:

this.products.subscribe(productevents=>{

Вы используете подписку на объект this.products, но продукты не объявлены в вашем контроллере как наблюдаемые.

Похоже, что внутри вашей функции .then вы ссылаетесь на данные, которые собираетесь использовать ...

this.products = data;

В этой строке вы устанавливаете this.products для ответа от функции .getPostedProducts (). Если один из них зависит от ответа, который будет успешно доставлен другим, я рекомендую .then, соединяясь с .finally. Вы можете прочитать об этом в этом посте:

В чем разница между тогда и наконец в обещании?

...