| 1234567891011121314151617181920 |
- /** 语句:delay 延迟(value 支持变量如 "{{stay-duration}}s";单位 ms/s/m/h/d/w/mon/月/y,可组合,纯数字按秒) */
- const types = ['delay']
- function parse(action, parseContext) {
- const parsed = { type: 'delay', value: action.value || action.delay || '0s' }
- return Object.assign({}, action, parsed)
- }
- async function execute(action, ctx) {
- const raw = action.value || action.delay || '0s'
- const resolved = ctx.replaceVariablesInString && ctx.variableContext
- ? ctx.replaceVariablesInString(String(raw), ctx.variableContext)
- : raw
- const delayMs = ctx.parseDelayString ? ctx.parseDelayString(resolved) : 0
- const waitMs = typeof delayMs === 'number' && delayMs > 0 ? delayMs : 0
- if (waitMs > 0) await new Promise(r => setTimeout(r, waitMs))
- return { success: true }
- }
- module.exports = { types, parse, execute }
|