0.2.3 • Published 6 years ago

@task.flow/thread-pool v0.2.3

Weekly downloads
1
License
MIT
Repository
github
Last release
6 years ago

@task.flow/thread-pool

travis package downloads styled with prettier

Thread pool scheduler for task.flow tasks. You will need to use this or an alternative scheduler to run tasks.

Usage

import Task from "task.flow"
import ThreadPool from "@task.flow/thread-pool"

const get = (url: string): Task<HTTPError, ArrayBuffer> =>
  Task.io(
    (succeed, fail) => {
      var request = new XMLHttpRequest()
      request.addEventListener("load", () => {
        succeed(request.response)
      })
      request.addEventListener("error", () => {
        fail(new HTTPError(request))
      })
      request.responseType = "arraybuffer"
      request.open("GET", url)
      request.send()
      return request
    },
    request => {
      request.abort()
    }
  )

// Note: Type checker only allows spawning Task<empty, void> so following won't
// type check.
// ThreadPool.spawn(get(myURL))

const task = get(myURL)
  .chain(content => {
    console.log("Completed HTTP GET:", content)
    return Task.succeed()
  })
  .capture(error => {
    console.error("Failed HTTP GET", error)
    return Task.succeed()
  })

ThreadPool.spawn(task)

Install

npm install @task.flow/thread-pool