npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

promise-web-worker

v1.0.2

Published

简化web worker使用的实用程序。使用promise包装一层,链式调用

Readme

promise-web-worker

Why

创建和使用Web Workers有时会很麻烦。该插件旨在促进 Web Worker 的使用。根据浏览器的兼容性对web Worker封装了一层 promise 封装,解决在不支持web Worker的浏览器下可能需要书写不同逻辑的可能。同时整理了创建web Worker对应的相关事件的消息通信,执行完会自动关闭 worker,通过链式调用获取处理结果。同时为了避免项目中使用web Worker需要考虑引用文件的同源策略限制以及 webpack 打包的麻烦,插件使用URL.createObjectURL对执行的逻辑函数生成一个 URL 对象,具体逻辑如下:

const URL = window.URL || window.webkitURL
const funcStr = utils.makeResponse(func)
const blob = new Blob([funcStr], { type: 'application/javascript' })
const objectURL = URL.createObjectURL(blob)
const worker = new Worker(objectURL)

How to install and use

npm install promise-web-worker

or

yarn add promise-web-worker

Then:

import PromiseWorker from 'promise-web-worker'

Options

PromiseWorker.isSupportWorker:Boolean

当前浏览器是否支持web Worker,在某些场景下可以用于判断,执行个性化的操作

PromiseWorker.run(func, [args]?):Function

Where:

  • func是要在 worker 中运行的函数
  • [args]func将使用的可选参数数组

此方法创建一个可处理的 Web 工作程序,运行并返回给定函数的结果,并关闭该工作程序.

此方法类似于 Promise.resolve(),但在另一个线程中. E.g.:

PromiseWorker.run(() => 'PromiseWorker run 1: Function in other thread')
  .then(console.log) // logs 'PromiseWorker run 1: Function in other thread'
  .catch(console.error) // logs any possible error

PromiseWorker.run((arg1, arg2) => `PromiseWorker run 2: ${arg1} ${arg2}`, ['Another', 'function in other thread'])
  .then(console.log) // logs 'PromiseWorker run 2: Another function in other thread'
  .catch(console.error) // logs any possible error