李金
2 months ago
2 changed files with 92 additions and 31 deletions
@ -1,17 +1,39 @@ |
|||
// 示例使用
|
|||
import { DynamicScriptExecutor } from '@/utils/dynamic_script_executor.ts' |
|||
|
|||
const executor = new DynamicScriptExecutor({ |
|||
// 示例使用
|
|||
const inputString = `
|
|||
This is some text. |
|||
{{ console.log("Dynamic JS block 1"); }} |
|||
More text here. |
|||
<% |
|||
let x = 10; |
|||
let y = 20; |
|||
console.log("Dynamic JS block 2: ", x + y); |
|||
%> |
|||
And some final text. |
|||
`
|
|||
|
|||
// 使用默认的 {{ 和 }} 标记
|
|||
const executorDefault = new DynamicScriptExecutor({ |
|||
user: { name: 'Alice', age: 30 }, |
|||
sayHello: (name: string) => `Hello, ${name}!` |
|||
}) |
|||
|
|||
// 使用默认标记执行动态JS块
|
|||
executorDefault.execute(inputString) |
|||
.then(results => console.log('执行结果(默认标记):', results)) |
|||
.catch(error => console.error('捕获到的错误:', error)) |
|||
|
|||
// 使用自定义的 <% 和 %> 标记
|
|||
const executorCustom = new DynamicScriptExecutor( |
|||
{ user: { name: 'Alice', age: 30 }, sayHello: (name: string) => `Hello, ${name}!` }, |
|||
'<%', |
|||
'%>' |
|||
) |
|||
|
|||
// 代码块中有可能抛出异常的代码
|
|||
const result = executor.execute(`
|
|||
console.log(user); |
|||
throw new Error('测试错误'); // 故意抛出一个错误
|
|||
return sayHello(user.name); |
|||
`)
|
|||
// 使用自定义标记执行动态JS块
|
|||
executorCustom.execute(inputString) |
|||
.then(results => console.log('执行结果(自定义标记):', results)) |
|||
.catch(error => console.error('捕获到的错误:', error)) |
|||
|
|||
result.then(console.log).catch(console.error) |
Write
Preview
Loading…
Cancel
Save
Reference in new issue