在订阅

时间:2017-12-14 08:33:01

标签: angular typescript observable

我在使用Rxjs库时面临一些困难,尤其是Observables:

我有一个angular 2应用程序,它使用返回Observable

的HTTP库调用API

事实是,当我有一个更新用户的功能时:

function updateUser(user: User) {
    return this.http.put("http://myAPI/user/update, user)  
}

我想在每次updateUser调用时更新用户,而不是在调用端执行此操作,如:

function updateUser(user: User) {
    return this.http.put("http://myAPI/user/update", user).addCallback( updatedUser => {
        this.user = updatedUser.json()
    })
}

要清楚,我想在每次订阅“updateUser()”时放置一个函数。

有什么办法吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果我理解正确你想要操纵observable的返回值,那么你总是返回用户。

如果是这种情况,您可以使用Observable.map函数

http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-map

在你的情况下,它可能看起来像这样

function updateUser(user: User) {
    return this.http.put("http://myAPI/user/update", user)
        .map(response => {
            return response.json();
        });
}