実現したいこと
awaitを使って3つの処理を順番に(直列で)実行するようにしたいです。
前提として以下の2つのファイルがある状況です。
customize.js:他の人が手を加えられるjs
base.js:他の人が手を加えられないjs
通常は以下のように非同期の関数をawait func2()として呼び出すかと思うのですが
customize.js
1$(async function () { 2 func1(); 3 await func2(); 4 func3(); 5})
base.js
1//処理1 2const func1 = () => { 3 //1の処理 4} 5 6//処理2 7const func2 = () => { 8 return new Promise((resolve, reject) => { 9 //ajaxの処理 10 }) 11} 12 13//処理3 14const func3 = () => { 15 //3の処理 16}
課題
以下のように、customize.jsはシンプルな記述にしたいです。
そのためにacincとawaitはbase.jsに切り分けたいのですが、動かしたところ直列処理になっていないように感じました。
改善方法はありますでしょうか。
customize.js
1$(function () { 2 func1(); 3 func2(); 4 func3(); 5})
base.js
1//処理1 2const func1 = () => { 3 //1の処理 4} 5 6//処理2 7export const func2 = async () => { 8 await new Promise((resolve, reject) => { 9 //ajaxの処理 10 }) 11} 12 13//処理3 14const func3 = () => { 15 //3の処理 16}
目的
・customize.jsはjsに詳しくない人も触れる前提なので、可能な限りシンプルにしたいです。
・customize.jsのasyncやawaitを間違えて削除した際にバグに繋がる可能性があるため、リスクヘッジとしてbase.jsに記述したいです。
よろしくお願いします。
回答5件
あなたの回答
tips
プレビュー