我有一个任意长度的数组,其中包含:
const arr = [{key: 345}, {key: 786}, {key: 980}];
我想返回一个使用数组返回promise链的函数。
function getCallback(arr) { return function(builder) { return builder .where(arr[0].key) .where(arr[1].key) .where(arr[2].key) } }
不确定如何使用任意长度的数组实现此目的。我查看了recursive solution,但无法在此用例中使用它。
答案 0 :(得分:3)
您现在不必像在示例代码中那样对函数调用进行链接。而是在循环中单独调用它们:
const arr = [{key: 345}, {key: 786}, {key: 980}];
function getCallback(arr) {
return function(builder) {
arr.forEach(function(item) {
builder = builder.where(item.key);
});
return builder;
}
}
var MockBuilder = function() {}
MockBuilder.prototype.where = function(key) {
console.log(key);
return this;
};
var callback = getCallback(arr);
callback(new MockBuilder());