2 Commits

Author SHA1 Message Date
2dc91dc2f0 2.0.11 2021-06-04 13:54:21 +02:00
3784de03ce fix(core): update 2021-06-04 13:54:21 +02:00
3 changed files with 23295 additions and 1269 deletions

24525
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "@pushrocks/smartdelay",
"private": false,
"version": "2.0.10",
"version": "2.0.11",
"description": "timeouts for the async/await era, written in TypeScript",
"main": "dist_ts/index.js",
"typings": "dist_ts/index.d.ts",
@@ -28,7 +28,7 @@
"@gitzone/tsrun": "^1.2.8",
"@gitzone/tstest": "^1.0.28",
"@pushrocks/tapbundle": "^3.2.1",
"@types/node": "^14.0.5",
"@types/node": "^15.12.0",
"tslint": "^6.1.2",
"tslint-config-prettier": "^1.18.0"
},

View File

@@ -2,32 +2,26 @@ import * as smartpromise from '@pushrocks/smartpromise';
/**
* delay something, works like setTimeout
* @param timeInMillisecond
* @param passOn
* @param timeInMillisecondArg
* @param passOnArg
*/
export let delayFor = async <T>(timeInMillisecond: number, passOn?: T) => {
await new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, timeInMillisecond);
});
return passOn;
export let delayFor = async <T>(timeInMillisecondArg: number, passOnArg?: T, unrefedArg = false) => {
const timeout = new Timeout(timeInMillisecondArg, null, unrefedArg);
await timeout.promise;
return passOnArg;
};
/**
* delay for a random time
*/
export let delayForRandom = async <T>(
timeMinInMillisecond: number,
timeMaxInMillisecond: number,
passOn?: T
timeMinInMillisecondArg: number,
timeMaxInMillisecondArg: number,
passOnArg?: T,
unrefedArg = false
) => {
await new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, Math.random() * (timeMaxInMillisecond - timeMinInMillisecond) + timeMinInMillisecond);
});
return passOn;
await delayFor(Math.random() * (timeMaxInMillisecondArg - timeMinInMillisecondArg) + timeMinInMillisecondArg, null, unrefedArg)
return passOnArg;
};
export class Timeout<T> {
@@ -39,7 +33,7 @@ export class Timeout<T> {
private timeoutInMillis: number;
private started: number;
constructor(timeInMillisecondArg, passOn?: T) {
constructor(timeInMillisecondArg, passOn?: T, unrefedArg = false) {
this.timeoutInMillis = timeInMillisecondArg;
this._deferred = smartpromise.defer<T>();
this.promise = this._deferred.promise;
@@ -49,6 +43,9 @@ export class Timeout<T> {
}
}, timeInMillisecondArg);
this.started = Date.now();
if (unrefedArg) {
this.makeUnrefed();
}
}
/**