我有这个问题,当我在函数内部更改变量的值时,如果我想在它之外使用它,变量的值将返回0,但在其中,值为's' s改变。
我需要知道一种方法来将变量的值保留在函数之外。
这是我目前的代码:
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
}
答案 0 :(得分:0)
正在异步代码中修改totals
的值,因此在异步代码完成之前正在执行console.log
。使用此类代码时,您通常希望在异步代码执行完毕后返回Promise
或执行callback
。