5

私は約束を守って自分のやり方で取り組んでおり、ユースケースにこだわっています。トランスフォーマー関数の配列があります (各関数はプロミスであり、JSON 構造を変更します)。

いくつかのコードを示しましょう。

これが私のJSON構造(配列)だとしましょう

var data = [{a: 1, b:2}, {a:3, b:4}]; 

transformFunction特定の方法でデータを変更する変換関数の定義です。2 つの関数は、上記の JSON 構造にプロパティcとプロパティを追加します。d

var transformFunctions = { // 

    transform1: function (data) {  // This function adds `c` property to each object from `a`
        return new Promise(function (resolve) {
             for (var i = 0; i < data.length; i++) {
                 data[i].c = data[i].a;
             }
             return resolve(data);
        })
    },

    transform2: function (data) {  // This function adds `d` property to each object from `c`
        return new Promise(function (resolve) {
             for (var i = 0; i < data.length; i++) {
                 data[i].d = data[i].c;
             }
             return resolve(data);
        })
    },
    ...
}

UI ユーザーからの は、使用するトランスフォーマー関数とその順序を指定します。彼が次のような通常の順序を選択したとしましょう。

var userTransformList = ['transform1', 'transform2'];

メソッドはtransform1データを変更し、結果をメソッドに渡す必要がありますtransform2

私は見ていました:Promise.allしかし、それはプロミスの順序を気にしていないようで、最も重要なことは、前の結果を次のプロミスに渡す必要があることです。

4

2 に答える 2