我想用角度构建一个承诺链来应用一组查询:
for(variableIndex in _editableVariable.values) {
var v = _editableVariable.values[variableIndex];
if(v.value != v.old_value) {
console.log('v', v);
var newVariableRes = new VariableValueRes(v);
if(v.old_value == undefined) {
p.then(function() {
console.log('B', newVariableRes);
return newVariableRes.$save().$promise;
});
} else {
console.log('Try update: ', v);
p.then(function() {
console.log('C', newVariableRes);
return newVariableRes.$update().$promise;
});
}
}
}
我的问题是当我显示不同的变量时console.log('v',v)
我得到了不同value
的结果。当我在承诺中并显示最新变量console.log('B', newVariableRes)
的内容newVariableRes
时value
。
输出示例:
v
Object {value: "1", old_value: undefined, platform: "/api/v1/platform/1", product_variable: "/api/v1/product_var/2"}
v
Object {value: "2", old_value: undefined, platform: "/api/v1/platform/2", product_variable: "/api/v1/product_var/2"}
v
Object {value: "3", old_value: "", id: 7, platform: "/api/v1/platform/3", product_variable: "/api/v1/product_var/2"}
B
Resource {value: "3", old_value: "", id: 7, platform: "/api/v1/platform/3", product_variable: "/api/v1/product_var/2"…}
B
Resource {value: "3", old_value: "", id: 7, platform: "/api/v1/platform/3", product_variable: "/api/v1/product_var/2"…}
C
Resource {value: "3", old_value: "", id: 7, platform: "/api/v1/platform/3", product_variable: "/api/v1/product_var/2"…}
由于我是 javascript 新手,我认为这v
是对价值的参考。因此VariableValueRes
采用此参考。当我更改 的指向引用时v
,这不应该更改VariableValueRes
.
我的误解在哪里?