質問: customConfirm("確認メッセージ"); if (con){ // OKボタンが押された時の処理 } else{ // キャンセルボタンが押された時の処理 } // その後の処理 }); ``` 出来ればこう↑プログラムを書きたいです! 妥協して1番の書き方はスマートかなと感じています。 どうぞよろしくお願いします。
回答: 一般的なブラウザ上で動作するJavaScriptではおそらくできないかと思います。 JavaScriptは基本的にシングルスレッドで動作します。一つのスレッドで描画やイベント処理すべて行うので、もしスレッドをブロック、つまり何かしらの応答を待ってしまうと文字も表示できないし、OKボタンが押されたことなども検知できません。なのでスレッドをブロックするような機能はありません。 どうしても`var con = customConfirm("確認メッセージ");`と書きたいのであれば、customConfirm()の戻り値を`Promise`にして、 ``` var con = customConfirm("確認メッセージ"); con.then(function(dialogResult) { // resolve値にボタンが押された結果を渡す if(dialogResult === customConfirm.OK) { // 例えばこんな定数っぽい値と比較 // OKの処理 } else { // キャンセルとか } }); ``` こんな感じになるでしょうか。