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 🙏

© 2024 – Pkg Stats / Ryan Hefner

promise-loops

v1.0.2

Published

promise loops

Downloads

4

Readme

promise-loops

这是一个可以用来循环执行promise的工具

npm install --save promise-loops

Demo

比如每隔X秒输出一个数, 可以随时终止, 随时开始 demo1

let index = 0;
const addPromise = (params) => (
  // 可以接收参数
	new Promise((res) => {
		// console.log(++index)
		res(index++);
	})
)

const loop = new LoopPromise(addPromise);
loop
	.time(1000) // 每隔1秒触发一次
	.interruptTime((res) => (res !== 10), true) // 当第一个参数返回true时就会一直运行直到返回false, 也可以直接设置成number类型表示执行次数, 第二个参数可选, true表示当暂停时也触发callback
	.params(() => ('params')) // 可以设置参数
	.filterRes(res => res) // 统一处理resolved值
	.callback(res => { oDiv.innerHTML = `${oDiv.innerHTML} ${res}` }) // 回调

loop.trim(); // 开始轮询promise

比如通过接口获取进度条的进度之类, 可以随时暂停, 随时开始 demo2

import LoopPromise from '../src';
import ajaxFetchProcess from './fakeProcess';

const fetchOriginData = () => (
  new Promise((resolved) => {
    const result = ajaxFetchProcess();
    resolved(result);
  })
);

const loop = new LoopPromise(fetchOriginData);

loop
  .time(2000)
  .interruptTime(res => res !== 100)
  .callback(res => (oProgress1.innerHTML = `进度: ${res}%`) && oProgress2.setAttribute('value', res))