循环执行顺序

时间:2018-10-05 09:02:17

标签: javascript json node.js for-loop async.js

我正在使用此功能从Google Analytics(分析)获取一些信息,并尝试将其粘贴在JS对象中,以便将其发送给用户。

我的问题是:console.log(obj)obj.push(tempObj);之前执行。因此,当我尝试发送obj时,发现它为空。

我尝试使用async.each()async.waterfall(),但仍然遇到相同的问题。

function getJsonFileByUser2() {
  authClient.authorize((err, tokens) => {
    let dimensions, webproperties;
    let accounts = getAccountsByUser();
    let obj = [];
    for (var i = 0; i < accounts.length; i++) {
      let tempObj = {
        account_id: accounts[i]["id"],
        account_name: accounts[i]["name"],
        webproperties: []
      };
      webproperties = getWebPropertyIdByAccount(accounts[i]["id"]);
      for (let j = 0; j < webproperties.length; j++) {
        dimensions = getDimensions(accounts[i]["id"], webproperties[j]["id"]);
        tempObj.webproperties.push({
          id: webproperties[j]["id"],
          name: webproperties[j]["name"],
          dimensions: dimensions
        });
      }
      obj.push(tempObj);
    }
    console.log(obj);
  });
}

0 个答案:

没有答案