0

一連のクエリを適用するために、angular で promise チェーンを構築したいと思います。

           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)newVariableResvalue

出力例:

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

私の誤解はどこにありますか?

4

1 に答える 1