javascript如何编写处理动态方法链接的函数
假设我有下面的方法javascript如何编写处理动态方法链接的函数,javascript,method-chaining,supertest,Javascript,Method Chaining,Supertest,假设我有下面的方法 api.post('users') .set(key,value); .send(data) .expect(201) 我对javascript很好奇,我如何设置一个函数来动态调用/chain.set,根据对象中的键数在第一个方法中设置?所以如果我有对象foo={a:1,b:2,c:2} 该函数的行为如下所示 api.post('users') .set(a,1) .set(b
api.post('users')
.set(key,value);
.send(data)
.expect(201)
我对javascript很好奇,我如何设置一个函数来动态调用/chain.set,根据对象中的键数在第一个方法中设置?所以如果我有对象foo={a:1,b:2,c:2}
该函数的行为如下所示
api.post('users')
.set(a,1)
.set(b,2)
.set(c,3)
.send(data)
.expect(201)
该函数只需在循环中调用
.set
:
function setMultiple(api, values) {
for (var key in values) {
if (values.hasOwnProperty(key)) {
api = api.set(key, values[key]));
}
}
return api;
}
为什么不更改
.set()
方法,使其允许您设置多个变量,例如.set({a:1,b:2,c:3})
?链接只需返回此
或包含每个方法下一个方法的某个对象即可完成,但是,如果您的方法是异步的,并且您希望在前一个方法完成后才调用下一个方法,那么这要复杂得多……然后将此方法设置为api
,是的。请记住,只有在设置调用的顺序不重要的情况下,此方法才有效:)
var foo = {a: 1, b:2, c:2 }
var apiPost = api.post("users");
for(var key in foo){
apiPost = apiPost.set(key,foo[key]);
}
apiPost.send(data).expect(201);