 | |  |  | AIWROK软件Function导入方法实例演示
- //🍎交流QQ群711841924群一,苹果内测群,528816639
- /**
- * =============================================================================
- * AIWROK 全局函数封装示例
- * =============================================================================
- * 本示例演示 AIWROK 平台5个核心全局函数的封装与使用
- * 1. printl() - 日志输出
- * 2. stop() - 停止脚本
- * 3. Import() - 导入JS文件
- * 4. setInterval() - 定时任务
- * 5. clearInterval() - 停止定时任务
- */
- // =============================================================================
- // 1. printl() 函数封装示例
- // =============================================================================
- /**
- * 基础日志输出函数封装
- * @param {*} msg - 任意类型的消息
- */
- function log(msg) {
- printl(msg);
- }
- /**
- * 带时间戳的日志函数
- * @param {*} msg - 消息内容
- */
- function logWithTime(msg) {
- var now = new Date();
- var time = now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
- printl('[' + time + '] ' + String(msg));
- }
- /**
- * 分级日志函数
- * @param {string} level - 日志级别 INFO/ERROR/WARN
- * @param {*} msg - 消息内容
- */
- function logLevel(level, msg) {
- printl('[' + level + '] ' + String(msg));
- }
- /**
- * 日志对象数组打印
- * @param {Array} arr - 数组对象
- */
- function logArray(arr) {
- printl('数组内容: ' + JSON.stringify(arr));
- }
- /**
- * 日志JSON对象打印
- * @param {Object} obj - JSON对象
- */
- function logObject(obj) {
- printl('对象内容: ' + JSON.stringify(obj));
- }
- // =============================================================================
- // 2. stop() 函数封装示例
- // =============================================================================
- /**
- * 安全停止脚本函数
- * @param {string} reason - 停止原因
- */
- function safeStop(reason) {
- printl('========== 脚本停止 ==========');
- if (reason) {
- printl('停止原因: ' + reason);
- }
- printl('等待进程安全回收...');
- stop();
- }
- /**
- * 条件停止函数
- * @param {boolean} condition - 停止条件
- * @param {string} reason - 停止原因
- */
- function stopIf(condition, reason) {
- if (condition) {
- safeStop(reason);
- }
- }
- /**
- * 错误停止函数
- * @param {Error} error - 错误对象
- */
- function stopOnError(error) {
- printl('========== 发生错误 ==========');
- printl('错误信息: ' + error.message);
- stop();
- }
- // =============================================================================
- // 3. Import() 函数封装示例
- // =============================================================================
- /**
- * 导入工具函数文件
- * @param {string} filename - 文件名
- * @returns {string} 执行结果
- */
- function loadUtils(filename) {
- printl('正在导入工具文件: ' + filename);
- var result = Import(filename);
- printl('导入完成');
- return result;
- }
- /**
- * 导入配置文件
- * @param {string} filename - 配置文件名
- * @returns {string} 配置内容
- */
- function loadConfig(filename) {
- printl('正在加载配置: ' + filename);
- var config = Import(filename);
- printl('配置加载成功');
- return config;
- }
- /**
- * 批量导入文件
- * @param {Array} filenames - 文件名数组
- */
- function loadMultipleFiles(filenames) {
- printl('========== 批量导入文件 ==========');
- for (var i = 0; i < filenames.length; i++) {
- printl('导入文件 ' + (i + 1) + '/' + filenames.length + ': ' + filenames[i]);
- Import(filenames[i]);
- }
- printl('========== 批量导入完成 ==========');
- }
- // =============================================================================
- // 4. setInterval() 函数封装示例
- // =============================================================================
- /**
- * 创建心跳定时任务
- * @param {number} interval - 间隔时间(毫秒)
- * @returns {number} 任务ID
- */
- function startHeartbeat(interval) {
- var id = setInterval(function() {
- printl('♥ 心跳检测 - 系统运行正常');
- }, interval);
- printl('心跳任务已启动,ID: ' + id + ', 间隔: ' + interval + 'ms');
- return id;
- }
- /**
- * 创建计数定时任务
- * @param {number} interval - 间隔时间(毫秒)
- * @returns {number} 任务ID
- */
- function startCounter(interval) {
- var count = 0;
- var id = setInterval(function() {
- count++;
- printl('计数: ' + count);
- }, interval);
- printl('计数任务已启动,ID: ' + id);
- return id;
- }
- /**
- * 创建时间显示定时任务
- * @param {number} interval - 间隔时间(毫秒)
- * @returns {number} 任务ID
- */
- function startTimeDisplay(interval) {
- var id = setInterval(function() {
- var now = new Date();
- var time = now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
- printl('当前时间: ' + time);
- }, interval);
- printl('时间显示任务已启动,ID: ' + id);
- return id;
- }
- /**
- * 创建自定义任务
- * @param {Function} func - 要执行的函数
- * @param {number} interval - 间隔时间(毫秒)
- * @param {string} taskName - 任务名称
- * @returns {number} 任务ID
- */
- function startCustomTask(func, interval, taskName) {
- var id = setInterval(func, interval);
- printl('任务 [' + taskName + '] 已启动,ID: ' + id + ', 间隔: ' + interval + 'ms');
- return id;
- }
- // =============================================================================
- // 5. clearInterval() 函数封装示例
- // =============================================================================
- /**
- * 停止指定任务
- * @param {number} id - 任务ID
- * @param {string} taskName - 任务名称
- * @returns {boolean} 是否成功
- */
- function stopTask(id, taskName) {
- var result = clearInterval(id);
- if (result) {
- printl('任务 [' + taskName + '] 已停止,ID: ' + id);
- } else {
- printl('停止任务失败,ID: ' + id);
- }
- return result;
- }
- /**
- * 停止多个任务
- * @param {Array} taskIds - 任务ID数组
- */
- function stopMultipleTasks(taskIds) {
- printl('========== 停止多个任务 ==========');
- for (var i = 0; i < taskIds.length; i++) {
- clearInterval(taskIds[i]);
- printl('任务 ' + (i + 1) + ' 已停止');
- }
- printl('========== 所有任务已停止 ==========');
- }
- /**
- * 安全停止任务(带检查)
- * @param {number} id - 任务ID
- * @param {string} taskName - 任务名称
- */
- function safeStopTask(id, taskName) {
- if (id && id > 0) {
- var result = clearInterval(id);
- if (result) {
- printl('✓ 任务 [' + taskName + '] 停止成功');
- } else {
- printl('✗ 任务 [' + taskName + '] 停止失败');
- }
- } else {
- printl('✗ 无效的任务ID');
- }
- }
- // =============================================================================
- // 综合示例演示
- // =============================================================================
- /**
- * 演示1: printl 基础用法
- */
- function demoPrintl() {
- printl('========== 演示1: printl 基础用法 ==========');
-
- log('这是基础日志');
- logWithTime('这是带时间戳的日志');
- logLevel('INFO', '这是INFO级别日志');
- logLevel('ERROR', '这是ERROR级别日志');
-
- var arr = [1, 2, 3, 4, 5];
- logArray(arr);
-
- var obj = { name: 'AIWROK', version: '2.0' };
- logObject(obj);
-
- printl('');
- }
- /**
- * 演示2: stop 基础用法
- */
- function demoStop() {
- printl('========== 演示2: stop 基础用法 ==========');
-
- printl('注意: stop() 会停止整个脚本,实际使用时请谨慎');
- printl('以下代码仅演示,不会实际执行 stop()');
-
- var errorCondition = false;
- stopIf(errorCondition, '条件满足时停止');
-
- printl('');
- }
- /**
- * 演示3: Import 基础用法
- */
- function demoImport() {
- printl('========== 演示3: Import 基础用法 ==========');
-
- printl('注意: Import() 需要实际存在的JS文件');
- printl('以下代码仅演示语法,不会实际执行');
-
- var result = loadUtils('utils.js');
- printl('导入结果: ' + result);
-
- var config = loadConfig('config.js');
- printl('配置内容: ' + config);
-
- var files = ['tool1.js', 'tool2.js', 'tool3.js'];
- loadMultipleFiles(files);
-
- printl('');
- }
- /**
- * 演示4: setInterval 基础用法
- */
- function demoSetInterval() {
- printl('========== 演示4: setInterval 基础用法 ==========');
-
- var heartbeatId = startHeartbeat(2000);
- Sleeper.second(6);
-
- var counterId = startCounter(1000);
- Sleeper.second(4);
-
- var timeId = startTimeDisplay(3000);
- Sleeper.second(7);
-
- var customId = startCustomTask(function() {
- printl('自定义任务执行中...');
- }, 1500, '自定义任务');
- Sleeper.second(5);
-
- printl('');
-
- return [heartbeatId, counterId, timeId, customId];
- }
- /**
- * 演示5: clearInterval 基础用法
- */
- function demoClearInterval(taskIds) {
- printl('========== 演示5: clearInterval 基础用法 ==========');
-
- stopTask(taskIds[0], '心跳任务');
- Sleeper.second(2);
-
- stopTask(taskIds[1], '计数任务');
- Sleeper.second(2);
-
- stopTask(taskIds[2], '时间显示任务');
- Sleeper.second(2);
-
- stopTask(taskIds[3], '自定义任务');
- Sleeper.second(2);
-
- printl('');
- }
- /**
- * 延迟工具函数
- * @param {number} seconds - 秒数
- */
- function Sleeper() {}
- Sleeper.second = function(seconds) {
- var start = new Date().getTime();
- while (new Date().getTime() - start < seconds * 1000) {
- // 等待
- }
- };
- /**
- * 主函数 - 运行所有演示
- */
- function main() {
- printl('========================================');
- printl(' AIWROK 全局函数封装示例');
- printl('========================================');
- printl('');
-
- demoPrintl();
- demoStop();
- demoImport();
-
- var taskIds = demoSetInterval();
- demoClearInterval(taskIds);
-
- printl('========================================');
- printl(' 所有演示已完成!');
- printl('========================================');
- }
- // 注意:主函数不再自动执行,由 start.js 控制调用时机
- // 如需自动运行,请取消下面这行的注释
- main();
复制代码
| |  | |  |
|