diff --git a/src/js/composer/composerConfig.js b/src/js/composer/composerConfig.js index 64249c9..fced8ea 100644 --- a/src/js/composer/composerConfig.js +++ b/src/js/composer/composerConfig.js @@ -50,12 +50,14 @@ export const commandCategories = [ value: "utools.ubrowser.goto", label: "用ubrowser打开网址", desc: "要访问的网址链接", + isAsync: true, }, { value: "ubrowser", label: "UBrowser浏览器操作", desc: "配置UBrowser浏览器操作", hasUBrowserEditor: true, + isAsync: true, }, ], }, diff --git a/src/js/composer/generateCode.js b/src/js/composer/generateCode.js index 53da9a6..1861a7d 100644 --- a/src/js/composer/generateCode.js +++ b/src/js/composer/generateCode.js @@ -1,21 +1,30 @@ export function generateCode(commandFlow) { - let code = []; + // 检查是否包含异步函数 + const hasAsyncFunction = commandFlow.some((cmd) => cmd.isAsync); + + let code = hasAsyncFunction ? ["async function run() {"] : []; + const indent = hasAsyncFunction ? " " : ""; commandFlow.forEach((cmd) => { - let line = ""; + let line = indent; if (cmd.outputVariable) { line += `let ${cmd.outputVariable} = `; } if (cmd.value === "ubrowser") { - line += cmd.argv; + line += `await ${cmd.argv}`; } else { - line += `${cmd.value}(${cmd.argv})`; + line += `${cmd.isAsync ? "await " : ""}${cmd.value}(${cmd.argv})`; } code.push(line); }); + if (hasAsyncFunction) { + code.push("}"); // Close the async function + code.push("run();"); // Call the function + } + return code.join("\n"); }