Tags: e-oz/ngx-collection
Tags
New method: `fetchItem()`! This method will check if the item exists in the collection and return it if it does. If the item does not exist, the `request` argument will be used to fetch the item and add it to the collection. If the option `fetchItemRequestFactory` is set, the `request` argument is optional. If both are missing, the resulting Observable will throw an error.
* New (experimental!) methods: `readFrom` and `readManyFrom`. Can be … …called as part of constructor options. * `EffectFnMethods` renamed to `EffectObservables`, and lost methods `next`, `error` and `complete` - the same functionality with a less ambiguous API can be achieved with `EffectListeners`. This API is considered stable now.
### 4.1.1 `createEffect()` now returns not just a function, but a function with methods! :) API is experimental and might change, so it's documented only here for now. In your store: ```ts import { createEffect } from './create-effect'; class Store extends Collection<Item> { readonly changeZipCode = createEffect<string>(_ => _.pipe( // code to change zipcode )); } ``` In your component: ```ts class Component { store = inject(Store); dialog = inject(Dialog); changeZipCode(zipCode: string) { this.store.changeZipCode.nextValue(() => this.dialog.close()); this.store.changeZipCode(zipCode); } } ``` In this example, the dialog window will be closed only *after* the service response, and only if it was successful. Alongside nextValue, there are other methods: ```ts export type EffectFnMethods = { nextValue: (fn: ((v: unknown) => void)) => void, nextError: (fn: ((v: unknown) => void)) => void, onNextValue(): Observable<unknown>, onNextError(): Observable<unknown>, }; ``` Internally, values and errors will not be saved in memory if you don't use these methods.
PreviousNext