Angular然后不是一个函数

时间:2018-03-17 13:02:45

标签: javascript angular ionic-framework ionic2 ionic3

TYPESCRIPT代码:

helloworld(){
    this.get_data().then(data => {
      console.log(data);
    });
}

get_data(){
    return this.http.get('assets/data/user.json').map(res => res.json()).subscribe(data => {
        return this.json_data = data;
    });
}

任何人都可以告诉我为什么不起作用。我该如何解决这个问题?抱歉我的英语不好。

1 个答案:

答案 0 :(得分:1)

您无法在订阅上执行然后。您有可观察,可生成数据流,这意味着您实际上无法知道流何时结束。

另一方面,承诺一起使用。 承诺只返回 ONE 数据。数据到达后,然后激活。

在您的情况下,您需要做的事情:

helloworld(){
    this.get_data().subscribe(data => {
        console.log(data);
    })
}

get_data(){
    return this.http.get('assets/data/user.json').map(res => res.json());
}