Almin

Almin

  • Docs
  • API
  • Blog
  • Help
  • GitHub

›API

Introduction

  • Getting Started
  • Components of Almin
  • Principles
  • Hello World

Tutorial

  • Example projects
  • Counter Tutorial
  • Todo App tutorial

Guides

  • Logging
  • Nesting UseCase
  • Performance profile
  • Strict mode
  • UseCase LifeCycle
  • TypeScript

Troubleshooting

  • UseCase is already released

Appendix

  • GLOSSARY

API

  • API Index
  • Context
  • Dispatcher
  • DispatcherPayloadMeta
  • LifeCycleEventHub
  • Store
  • StoreGroup
  • UseCase
  • UseCaseContext
  • UseCaseExecutor
Edit

Dispatcher

Interface

export declare class Dispatcher extends Events<DispatcherEvent> {
    static isDispatcher(v: any): v is Dispatcher;
    onDispatch(handler: (payload: DispatchedPayload, meta: DispatcherPayloadMeta) => void): () => void;
    dispatch(payload: DispatchedPayload, meta?: DispatcherPayloadMeta): void;
    pipe(toDispatcher: Dispatcher): () => void;
}
export {};

export declare class Dispatcher extends Events<DispatcherEvent> {

Dispatcher is the central event bus system.

Dispatcher class have these method.

  • onDispatch(function(payload){ });
  • dispatch(payload);

Dispatcher pass payload object and meta object.

Payload

payload object must have type property. Following object is a minimal payload object.

{
    "type": "type"
}

Also, You can put any property to payload object.

{
    "type": "show",
    "value": "value"
}

PayloadMeta

meta object represent meta information for payload PayloadMeta is created automatically when that payload is dispatched.

FAQ

Q. Why Almin use payload object instead emit(key, ...args)?

A. It is for optimization and limitation. If apply emit style, we should cast ...args for passing other dispatcher at every time. So, Almin use payload object instead of it without casting.


static isDispatcher(v: any): v is Dispatcher;

if v is instance of Dispatcher, return true


onDispatch(handler: (payload: DispatchedPayload, meta: DispatcherPayloadMeta) => void): () => void;

Add handler(subscriber) to Dispatcher and return unsubscribe function

Example

const dispatcher = new Dispatcher();
const unsubscribe = dispatcher.onDispatch((payload, meta) => {});
unsubscribe(); // release handler

dispatch(payload: DispatchedPayload, meta?: DispatcherPayloadMeta): void;

Dispatch payload to subscribers.


Interface

pipe(toDispatcher: Dispatcher): () => void;
}
export {

Delegate payload object to other dispatcher.

Example

const a = new Dispatcher();
const b = new Dispatcher();
// Delegate `a` to `b`
a.pipe(b);
// dispatch and `b` can receive it.
a.dispatch({ type : "a" });

← ContextDispatcherPayloadMeta →
Almin
Docs
Getting StartedTutorialAPI Reference
Community
User ShowcaseStack OverflowTwitter
GitHub
GitHubReleasesIssuesStar
Copyright © 2021 azu