从函数中返回可观察对象的结果
Returning out of a function the results of an observable
我有一个函数需要 return 一个可观察对象,因为它正在其他地方订阅,但是因为我的函数正在异步发出请求,然后尝试 return 该数据作为可以观察到它正在破裂。
当前外观示例:
function userObservable() {
const select = 'select * from users';
this.db.query(select).subscribe(users => {
// apply some logic and filter to users here
// function just returns users as an observable
return asObservable(users);
});
}
function subscribeFunction() {
userObservable().subscribe(users => {
// do whatever
});
}
但基本上这是中断,因为它似乎在 userObservable()
函数 returned observable 之前尝试在 subscribeFunction()
中订阅。我在实现这个的过程中遗漏了什么吗?我可以让它等待以确保第一个函数 return 正常运行吗?
订阅 observable 后,它只能 return 订阅而不能再 return observable
但是您可以使用像 map/filter 这样的运算符来转换过滤您的用户对象和 return 它
return this.db.query(select).pipe(map(users => {
// apply some logic and filter to users here
// function just returns users as an observable
users=user.filter(........)
return users
}));
我有一个函数需要 return 一个可观察对象,因为它正在其他地方订阅,但是因为我的函数正在异步发出请求,然后尝试 return 该数据作为可以观察到它正在破裂。
当前外观示例:
function userObservable() {
const select = 'select * from users';
this.db.query(select).subscribe(users => {
// apply some logic and filter to users here
// function just returns users as an observable
return asObservable(users);
});
}
function subscribeFunction() {
userObservable().subscribe(users => {
// do whatever
});
}
但基本上这是中断,因为它似乎在 userObservable()
函数 returned observable 之前尝试在 subscribeFunction()
中订阅。我在实现这个的过程中遗漏了什么吗?我可以让它等待以确保第一个函数 return 正常运行吗?
订阅 observable 后,它只能 return 订阅而不能再 return observable
但是您可以使用像 map/filter 这样的运算符来转换过滤您的用户对象和 return 它
return this.db.query(select).pipe(map(users => {
// apply some logic and filter to users here
// function just returns users as an observable
users=user.filter(........)
return users
}));