Parallelコマンド


Parallelコマンド

一連のコマンドを並列に実行します。Parallelコマンドは、すべての子コマンドを同時に実行開始します。Parallelコマンドは、定義されたすべての子コマンドが終了すると終了します。Parallelコマンドが停止すると、実行中のコマンドはすべて停止します。

プロパティ

Parallelコマンドには、共通のコマンドプロパティに加えて、以下の表に示すプロパティがあります。typeプロパティはParallelに設定します。

コマンドを実行するために値が必要なプロパティの場合、以下の表の「デフォルト」列に「必須」と表示されています。それ以外の場合はデフォルト値が表示されますが、デフォルト値がないこともあります。

プロパティ デフォルト 説明

commands

コマンドの配列

必須

並行して実行する順序不同のコマンドのリストです。

data

配列

[]

コマンドに対してマップするデータのリストです。

高速モードでは、Parallelコマンドはすべてのサブコマンドを並列に実行しますが、遅延が発生することはありません(実質的な時間はゼロです)。

commands

並行して実行する順序不同のコマンド配列です。すべてのコマンドの実行が終了すると、Parallelコマンドは終了します。Parallelコマンドに設定されるdelayの値は、配列の各コマンドに設定されるdelayの値に追加されます。次の例では、最初のSendEventコマンドが1500ミリ秒後に実行され、2番目のSendEventコマンドが750ミリ秒後に実行されます。つまり、2番目のSendEventコマンドは最初のコマンドよりも先に実行されます。

{
  "type": "Parallel",
  "delay": 500,
  "commands": [
    {
      "type": "SendEvent",
      "delay": 1000
    },
    {
      "type": "SendEvent",
      "delay": 250
    }
  ]
}

data

反復処理するデータの配列です。data配列にデータが含まれている場合、Parallelコマンドはその配列を反復処理し、配列内の各値に対して新しいSequentialコマンドを作成します。新しい各Sequentialコマンドには、元のcommandsプロパティのコマンドが含まれます。これは、複数子コンポーネントにおけるデータ配列のインフレートのしくみに似ています。結果のParallelコマンドは、これらすべてのSequentialコマンドを同時に実行します。

たとえば、次のParallelコマンドには、commandsに2つのコマンドと、data配列に2つの文字列が含まれています。

{
  "type": "Parallel",
  "data": ["item1", "item2"],
  "commands": [ 
    {
      "type": "CustomCommand1",
      "item": "${data}"
    }, 
    {
      "type": "CustomCommand2",
      "item": "${data}"
    }
  ]
}

このコマンドは、data内の2つの項目のそれぞれに対してSequentialを1つずつ含むParallelコマンドに拡張されます。したがって、最終的に実行されるコマンドは次のようになります。

{
  "type": "Parallel",
  "commands": [
    {
      "type": "Sequential",
      "commands": [
        {
          "type": "CustomCommand1",
          "item": "item1"
        }, 
        {
          "type": "CustomCommand2",
          "item": "item1"
        }
      ]
    },
    {
      "type": "Sequential",
      "commands": [
        {
          "type": "CustomCommand1",
          "item": "item2"
        }, 
        {
          "type": "CustomCommand2",
          "item": "item2"
        }
      ]
    }
  ]
}

反復処理中に、データバインディングコンテキストは以下の表に示すプロパティを含むように拡張されます。

名前 説明

data

データ配列のプロパティから割り当てられたデータです。

index

現在のデータ項目の0から始まるインデックスです。

length

データ配列内のデータ項目の合計数です。

これらのプロパティは、data配列プロパティに1つ以上の項目が含まれている場合に設定されます。

データ配列を使用したParallelの例

以下の例では項目のリストが表示されます。このボタンでは、リストからランダムな色を選択し、項目の色をランダムな色に変更して、項目のテキストを色の名前に変更するという、3つのSetValueコマンドを含むParallelを定義しています。Parallelは、data配列をSequenceに表示されている項目のリストと同じものに設定します。

コマンドが実行されると、リスト内の各項目の色が最初に変わり、次にテキストが変わります。リスト内の項目はすべて同時に更新されます。


リスト項目を順番に更新する同様の例については、データ配列を使用したSequentialの例を参照してください。


このページは役に立ちましたか?

最終更新日: 2025 年 12 月 04 日