複数のページから関数をimportして同時実行する
Userscriptでdynamic importを使う実験
任意の日付のタスクを自動生成するのに使う
実験
タイトルに「実験:」を含んだページのexperiment.jsにあるexecute()を実行し、その戻り値をまとめてconsole.log()に出力してみる
code:js
(async () => {
const {execute} = await import ('/api/code/takker/複数のページから関数をimportして同時実行する/script.js');
execute();
})();
code:script.js
export async function execute() {
const titles = scrapbox.Project.pages.flatMap(({titleLc, exists}) => exists && titleLc.startsWith('実験:') ? titleLc : []);
const executes = await Promise.all(titles.map(title => getFunction(title, 'experiment.js')));
console.log(executes.flatMap(execute => execute ? execute() : []));
}
async function getFunction(title, filename) {
try {
const {execute} = await import(../${title}/${filename});
return execute;
} catch(e) {
return undefined;
}
}
#2021-03-13 08:18:56
#2021-03-12 23:23:03