Effector

Effector

  • Docs
  • Try
  • API
  • Blog
  • Twitter
  • GitHub

›effector

effector

  • API Reference
  • Event
  • Store
  • Effect
  • Domain
  • createStore
  • createEvent
  • createEffect
  • createDomain
  • createStoreObject
  • combine
  • restore
  • createApi
  • clearNode
  • merge
  • split
  • sample
  • guard
  • forward
  • fromObservable

effector-react

  • API Reference
  • useStore
  • useStoreMap
  • useList
  • createComponent
  • Gate
  • createGate
  • useGate
  • createStoreConsumer

effector-vue

  • API Reference
  • VueEffector
  • ComponentOptions
  • Vue
Edit

merge(eventsArray)

Merges events, resulting single one, which fires upon trigger of any of merged events.

Arguments

  1. eventsArray (Array<Event>): Array of events to be merged.

Returns

(Event) - Event, which fires upon any of merged units was triggered

Example 1

import {createEvent, merge} from 'effector'
const foo = createEvent()
const bar = createEvent()
const baz = merge([foo, bar])
baz.watch(v => console.log('merged event triggered: ', v))

foo(1)
// => merged event triggered: 1
bar(2)
// => merged event triggered: 2

try it

Note: however, array can contain both events and stores. In this case, resulting event will fire, upon trigger of merged events, or upon store updates.

Example 2

import {createEvent, createStore, merge} from 'effector'

const setFoo = createEvent()
const setBar = createEvent()

const $foo = createStore(0).on(setFoo, (_, v) => v)

const $bar = createStore(100).on(setBar, (_, v) => v)

const anyUpdated = merge([$foo, $bar])
anyUpdated.watch(v => console.log(`state changed to: ${v}`))

setFoo(1) // => state changed to: 1
setBar(123) // => state changed to: 123

try it

Example 3

import {createEvent, createStore, merge} from 'effector'

const setFoo = createEvent()
const otherEvent = createEvent()

const $foo = createStore(0).on(setFoo, (_, v) => v)

const merged = merge([$foo, otherEvent])
merged.watch(v => console.log(`merged event payload: ${v}`))

setFoo(999)
otherEvent('bar')

try it

← clearNodesplit →
Effector
Docs
Getting StartedAPI Reference
Community
User ShowcaseStack OverflowGitterTwitter
More
GitHubStar
Copyright © 2019 zerobias