Skip to content

@idealworld/formula-editor v0.6.2 / iwExecutor / execute

Function: execute()

execute(inputParams, formulaValue, materials, entrance): Promise<any>

Formula execution engine

Parameters

inputParams: Map<string, any>

input parameters

formulaValue: string

the formula to be executed

materials: Namespace[]

materials used in the formula. You need to ensure that the variables or functions used in the formula are defined, and the variables in materials have corresponding input params values.

entrance: string

entrance variable of the formula

Returns

Promise<any>

formula execution results

Example

js
let inputParams = new Map<string,any>()
inputParams.set('$.field.age', 18)
let formulaValue = `$.fun.concat($.fun.sum(1,$.field.age))`
let entrance = '$'
let materials = [
 {
   name: 'field',
   label: '字段',
   isVar: true,
   items: [
     {
       name: 'applicant',
       label: '申请人'
     },
     {
       name: 'age',
       label: '年龄'
     }
   ]
 },
 {
   name: 'fun',
   label: '内置',
   isVar: false,
   items: [
     {
       name: 'sum',
       label: '求和',
       body: `return Array.from(arguments).reduce((a, b) => a + b)`
     },
     {
       name: 'concat',
       label: '合并文本',
       body: `return Array.from(arguments).join('')`
   ]
 }]
try{
  let result = await execute(inputParams, formulaValue, materials, entrance)
}catch(e){
  console.error(e)
  throw e
}

Source

processes/executor.ts:63