私は約束を守って自分のやり方で取り組んでおり、ユースケースにこだわっています。トランスフォーマー関数の配列があります (各関数はプロミスであり、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
しかし、それはプロミスの順序を気にしていないようで、最も重要なことは、前の結果を次のプロミスに渡す必要があることです。