0
私は、変数の値を0に戻しますが、変数の内部で変数を使用したい場合は、関数内の変数の値を変更すると変更されます。JSのメソッドの外部変数の値を保持する方法は?
私は変数の値を関数の外に保つ方法を知る必要があります。ここで
は私の現在のコードです:
function getCarsWithNoStatus() {
var statusName = [];
// We set the total counters for the areas
var totals = {bodyshop: 0, paintshop: 0, assembly: 0};
// var tmpTotal = 0;
WebApiFactory.getNoStatusOrders(bodyShop1).then(function(statusMonData) {
for(var statusProperty in statusMonData.NoStatusOrders) {
statusName = statusProperty;
for (var j = 0; j < statusMonData.NoStatusOrders[statusName].length; j++) {
if (typeof statusMonData.NoStatusOrders[statusProperty][j] !== null) {
totals.bodyshop++;
console.log(totals.bodyshop); //here shows correct value
}
}
}
});
console.log(totals.bodyshop); //value returns to 0
}
'totals'を' getCarsWithNoStatus() 'の外側に宣言してみませんか? – davidxxx
問題は、あなたのconsole.log(totals.bodyshop)です。それは外にあり、約束が返される前に実行されます。 – CodeHacker
最初に出力するconsole.logはどれですか? WebApiFactory.getNoStatusOrders(bodyShop1)はajaxコールですか? – Amit