Здесь проблема в том, что Observable не ожидает ответа от вызова службы и не выполняет оператор консоли. Поэтому значение, выводимое через оператор консоли, не является ответом, который вы ожидаете.
Для этого есть два решения:
1) Вы можете получить доступ к значению this.permissions через ваш пользовательский компонент внутри любого другого метода, если для этой переменной установлено значение. Попробуйте использовать эту переменную внутри другого метода, который вызывается после завершения этого выполнения.
2) Использование asyn c и ожидание и возврат объекта Promise вместо Observable. Тогда выполнение будет выполняться последовательно, а оператор консоли будет выполняться только после получения ответа.
пользовательский компонент ts
async submit(): void {
const request = await this.UserService
.getUser()
.then((result) => {
this.permissions = result[0].permissions
});
//I need to access the data here , permissions should not be empty
console.log("this.permissions" , this.permissions)
}
Служба
return new Promise((resolve, reject) => {
from(this.feathers.service('users').find<User>({ query : { identityId : 8895}})).subscribe(response => {
resolve(response);
}, reject);
});