ページ 11

【解決済】プラグインコマンドは非同期か

Posted: 2017年9月22日(金) 02:54
by よしだとものり
現在、チャットのプログラムを作っています。
キャラクターに話したらデータベースからデータを受信し
そのデータを1秒置きにwaitをかけながらテキスト表示しています。

イベントでは以下の1と2をデータ件数文ループするだけです。
1プラグインコマンド データの表示
2wait

プラグインコマンドでは最初に非同期の受信の完了待ちを行い
テキスト表示しています。

データは1件だけだと表示されるのですが
2件だと1件しか表示されません。
ひょっとしてプラグインコマンドは非同期でしょうか?

また、非同期でしたらwaitを長くする以外に同期待ちをする
方法はありますか?


それと誰かfirebaseに詳しい方はいませんでしょうか。
あまりにも情報がなさすぎるので;;

Re: プラグインコマンドは非同期か

Posted: 2017年9月22日(金) 03:58
by しぐれん
プラグインコマンドに同期待ち処理を入れることは可能です。
例えば選択肢の表示は入力が終わるまでイベントの実行を中断していますが、これは内部でwait処理を行うためです。
また、イベントコマンドのウェイトも同様です。
waitを入れて、そこで同期待ちをすることは可能です。

完了待ちをするよりも、どこかにメッセージのキューを作成してそこから取り出すほうが実装が容易な気もします。
こうすれば通信部分とメッセージ表示部分を切り離せると思います。

Re: 【解決済】プラグインコマンドは非同期か

Posted: 2017年9月22日(金) 11:24
by よしだとものり
通信と表示を切り分けることで解決しました。
いつもありがとうございます。