Monster.Util. Processing

This class allows to execute several functions in order.

Functions and timeouts can be passed. If a timeout is passed, it applies to all further functions. In the example

timeout1, function1, function2, function3, timeout2, function4

the timeout1 is valid for the functions 1, 2 and 3 and the timeout2 for the function4.

So the execution time is timeout1+timeout1+timeout1+timeout2

The result of run() is a promise.

Constructor

new Processing(…args)

Class to be able to execute function chains

Create new Processing

Functions and timeouts can be passed. If a timeout is passed, it applies to all further functions. In the example

timeout1, function1, function2, function3, timeout2, function4

the timeout1 is valid for the functions 1, 2 and 3 and the timeout2 for the function4.

So the execution time is timeout1+timeout1+timeout1+timeout2

Parameters:
NameTypeAttributesDescription
argsint | function<repeatable>
Since
  • 1.21.0
License
  • AGPLv3
Example
import {Processing} from '@schukai/monster/source/util/processing.mjs';

let startTime = +new Date();

new Processing((url) => {
    return fetch(url)
}, (response) => {
    // do something with the response
    console.log(response.status, +new Date() - startTime)
}, 200, () => {
    // this function is called 200 seconds after fetch is received.
    console.log('finished', +new Date() - startTime)
    return 'done'
}).run('https://monsterjs.org/assets/world.json').then(r => {
    console.log(r)
    // ↦ "done"
})

Methods

add(callback, time)

Adds a function with the desired timeout If no timeout is specified, the timeout of the previous function is used.

Adds a function with the desired timeout If no timeout is specified, the timeout of the previous function is used.

Parameters:
NameTypeDescription
callbackfunction
timeint | undefined
Throws:
  • value is not a function

    Type
    TypeError
  • value is not an integer

    Type
    TypeError

run(data) → {Promise}

Executes the defined functions in order.

Executes the defined functions in order.

Parameters:
NameTypeDescription
data*
Returns:
Type: 
Promise