执行函数

stopIf(条件, 表达式)

条件停止。当(If)条件为真时停止(stop)执行后续逻辑(即终止事件执行),取而代之去执行表达式(如果有,后端运行时执行结果将返回前端)。即使此表达式是在循环/$exp/函数里也一样,但除了异步函数外。

exc(表达式, 环境)

同步执行(execute)表达式,多个表达式字符串用分号;隔开,先后依次执行,等待上一个表达式执行完成后才执行下一个。
环境是个对象,可选,将与当前上下文数据$ctx合并后给表达式使用。

excA(表达式, 环境)

异步执行表达式,不阻塞当前线程;不等待上一个表达式执行完成马上执行下一个。
A表示异步(Async)。参考异步函数

excs(表达式, 次数, 环境)

多次执行表达式,$i是当前执行次数,从0次开始。可使用break()终止循环。

fx(表达式)

把表达式作为函数体包装成同步执行的函数,它会等待表达式执行完成后才返回(所以实际返回的是承诺Promise),适合在事件中使用(不应该用在页面展示中使用,否则会造成页面卡顿),比如读取数据库需要花费较长时间:$v.查询 = fx('$v.商品 = 商品表.find({})')
调用函数时传入的参数可以通过$args数组读取,第一个参数也可以通过$arg读取,如果传入的第一个参数是个对象则可以直接访问对象里的值。
函数内可以直接访问调用函数时的上下文$ctx,还可以通过$reg访问定义函数时的上下文。

fxA(表达式)

用法同上,但包装成异步执行的函数,它不等待表达式内耗时的任务的执行就直接返回,所以不会造成页面卡顿,适合用在页面展示中。
上面例子如果用fxA()包装,那它里面的$v.商品将取不到查询结果(实际得到的是Promise)。

同步和异步

exc()和fx()会等待内部耗时任务的执行,自己返回Promise
excA()和fxA()则不等待,自己有返回值,内部耗时任务返回Promise
参考异步函数

由众触低代码平台生成和驱动