Skip to main content

Asynchronous Engine

json-logic-engine comes with built-in support for asynchronous operations, so that you may integrate with external data sources our modules that may only resolve via Promises.


import { AsyncLogicEngine } from 'json-logic-engine'

const engine = new AsyncLogicEngine()

engine.addMethod('after250ms', async ([n]) => {
return new Promise(resolve => setTimeout(() => resolve(n), 250))
})

async function main () {
const f = await engine.build({ '+': [{ after250ms: 1 }, 1] })
console.log(await f()) // prints 2
}

At the time of writing, there are no built-in asynchronous operations, although each of the higher order operators are built-with support for asynchronous operations. (so you can map/filter/reduce/etc using async methods.)