Socket
Socket
Sign inDemoInstall

actorjs

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

actorjs

Elixir-style actors in JavaScript


Version published
Maintainers
1
Created
Source

actor.js

Elixir-style actors in JavaScript. Spawn "processes", then send and receive messages between them – just like you would in Elixir.

You can think of it as co, but with message passing.

Example

const pid = spawn(async function() {
  const msg = await this.receive(mail => {
    if (mail === 'hello') return 'world'
  })

  console.log(msg)
})

pid.send('hello')

See the included examples for more use cases.

Install

$ yarn add actorjs

API

spawn(fn | asyncFn, ...args) => PID

Spawn a "process" that will execute the passed-in function.

const pid = spawn(async function(foo, bar) {
  console.log("wee i'm in a process sorta")
}, 'foo', 'bar')
PID#send(msg)

Send a message to a PID.

pid.send(['ok', 'this is a message'])
this.receive(pattern) => Promise

Block until a received message matches the passed-in pattern function.

The pattern function takes an arbitrary message as input, and returns a result based on that message. By default, the pattern function is the identity function.

A result of undefined is not considered to be a match, and thus this.receive() will continue blocking.

const pid = spawn(async function() {
  let v = await this.receive(msg => {
    const [status, value] = msg
    if (status === 'hello') return value
    if (status === 'world') return "won't match"
  })

  v = await this.receive()
})

pid.send(['hello', 'yes this is dog'])
pid.send('anything')
PID#then(value =>), PID#catch(err =>)

The return value of spawn() is a thenable.

spawn(async function() {
  // ...
})
  .then(value => { /* ... */ })
  .catch(console.error)

License

MIT

Keywords

FAQs

Package last updated on 06 Jul 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc