Skip to content

Repository files navigation

utils

npmnpmaction
NPM

🔧 contactInfoDefault doc

Installation

npm i @planjs/utils

Usage

import{delay,retry,pTry,sequenceChain,nextTick,range,REG_TEL_PHONE,eventCenter,TimeoutMap,}from'@planjs/utils';// promise utilsasyncfunctionmain(){awaitdelay(100);functionfetchData(){returnPromise.reject(newError('testing'));}awaitretry(fetchData,{maxAttempts: 3,delayMs: 500})();}constpool=asyncPool({maxConcurrency: 10});constrandArr=range(1,10);nextTick(async()=>{const[err,res]=awaitpTry(main());if(!err){console.log(res);}letstart=Date.now();awaitPromise.all(randArr.map((v)=>pool.executor(delay(v))));// The timer has an accuracy problemif(Date.now()-start+1>=Math.max(...randArr)){console.log('concurrency');}constcount=(a=0)=>++a;constval=awaitsequenceChain([...range(0,10).map((v)=>[count])])();console.log(val);// 11});// commonly used regexREG_TEL_PHONE.test('132xxxxxxx');// false// event centereventCenter.on('log',console.log);eventCenter.trigger('log','planjs');// ext objconsttimeoutMap=newTimeoutMap({timeout: 200,passiveDeletion: true,onTimeout(k,v){console.log(`expired key [${k}], val [${v}]`);},});timeoutMap.set('name','fupengl');delay(201).then(()=>timeoutMap.get('name'));// null

Releases

Packages

Used by

Contributors

Languages