複数のページから関数をimportして同時実行する
実験
タイトルに「実験:」を含んだページの experiment.js
にある execute()
を実行し、その戻り値をまとめて console.log()
に出力してみる
js(async () => {
const {execute} = await import ('/api/code/takker/複数のページから関数をimportして同時実行する/script.js');
execute();
})();
script.jsexport 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;
}
}