我正在使用 Promise 来处理问题,但在使用案例中卡住了。我有一个转换器函数数组(每个函数都是 Promise 并修改某些 JSON 结构)。
让我展示一些代码。
假设这是我的 JSON 结构(数组)。
"transformFunction"是定义转换函数以某种方式修改数据的函数。这两个函数向上述JSON结构添加了"c"和"d"属性:
用户界面中,用户指定了应该使用哪些变换器函数以及它们的顺序。比如说他选择了正常的顺序,如下所示:
“transform1”方法应该修改数据,并将结果传递给“transform2”方法。
我正在查看:Promise.all,但它似乎不关心承诺的顺序,最重要的是它需要将上一个结果传递给下一个承诺。
让我展示一些代码。
假设这是我的 JSON 结构(数组)。
var data = [{a: 1, b:2}, {a:3, b:4}];
"transformFunction"是定义转换函数以某种方式修改数据的函数。这两个函数向上述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);
})
},
...
}
用户界面中,用户指定了应该使用哪些变换器函数以及它们的顺序。比如说他选择了正常的顺序,如下所示:
var userTransformList = ['transform1', 'transform2'];
“transform1”方法应该修改数据,并将结果传递给“transform2”方法。
我正在查看:Promise.all,但它似乎不关心承诺的顺序,最重要的是它需要将上一个结果传递给下一个承诺。