Skip to content

Repository files navigation

@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

About

Thread pool scheduler for task.flow

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages