【问题标题】:subscribe is not a function订阅不是一个函数
【发布时间】:2018-07-04 04:39:39
【问题描述】:

我正在尝试从 ASP.net 核心 Web API 获取数据并在 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

谁能说说这是什么原因?

【问题讨论】:

  • this.data 不是可观察的,您从哪里获得产品事件?你能分享一下数据obj中的内容吗
  • 我正在从 MongoDB 获取数据。为此,我正在使用 productProvider 获取数据。 postapiUrl="localhost:55427";构造函数(公共http:HttpClient){console.log('Hello ProductProvider Provider'); } getPostedProducts(){ return new Promise(resolve => { this.http.get(this.postapiUrl+'/product').subscribe(data => { resolve(data); }, err => { console.log(err ); }); }); }

标签: asp.net angular typescript ionic-framework observable


【解决方案1】:

在您使用 .subscribe 的代码 sn-p 中:

this.products.subscribe(productevents=>{

您正在对象 this.products 上使用 subscribe,但 products 并未在您的控制器中声明为可观察对象。

看起来您在 .then 函数中引用了您打算使用的数据......

this.products = data;

在这一行中,您将 this.products 设置为来自 .getPostedProducts() 函数的响应。如果一个依赖于从另一个成功传递的响应,我建议.then.finally 链接。您可以在这篇文章中了解它:

What is the difference between then and finally in a promise?

【讨论】:

    猜你喜欢
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 2018-01-23
    • 2021-05-12
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多