如何在JS中保持变量外部方法的值?

时间:2017-09-18 13:55:54

标签: javascript variables

我有这个问题,当我在函数内部更改变量的值时,如果我想在它之外使用它,变量的值将返回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

  }

1 个答案:

答案 0 :(得分:0)

正在异步代码中修改totals的值,因此在异步代码完成之前正在执行console.log。使用此类代码时,您通常希望在异步代码执行完毕后返回Promise或执行callback