Here I am getting data from storage
sendRequest() {
this.userservise.getAllUsers(...)
console.log("bedore")
this.query.selectAll().subscribe(users => {
console.log("inside")
this.users = users
})
console.log("after")
}
Here I write them in storage
getAllUsers(...) {
var url = ...
return this.http.get<User[]>(url, { withCredentials: true }).subscribe(u => {
this.store.set(u)
});
}
The strange behavior is that the "insede" function fires many times, with one more time on each new request. look scan
The query to the database is always sent one, as it should be. Also, if you exclude the Akita, everything will work fine.
sendRequest() {
this.userservise.getAllUsers(...).subscribe(users => {
this.users = users
})
}
getAllUsers(...): Observable<User[]> {
var url = ...
return this.http.get<User[]>(url, { withCredentials: true })
}
Store:
import { Injectable } from '@angular/core';
import { EntityState, EntityStore, StoreConfig } from '@datorama/akita';
import { User } from '../user';
export interface TodosState extends EntityState<User, number> { }
@Injectable({
providedIn: 'root'
})
@StoreConfig({ name: 'todos' })
export class TodosStore extends EntityStore<TodosState> {
constructor() {
super() ;
}
}
Query:
import { Injectable } from "@angular/core";
import { QueryEntity } from "@datorama/akita";
import { TodosState, TodosStore } from "./store";
@Injectable({
providedIn: 'root'
})
export class TodosQuery extends QueryEntity<TodosState> {
constructor(protected override store: TodosStore) {
super(store);
}
}
What could be the problem?