Javascript Soda js查询在脚本完成后运行。

Javascript Soda js查询在脚本完成后运行。,javascript,Javascript,为什么尽管查询后有代码,但查询在代码之前运行。它打印一个空数组,然后在查询函数中执行所有操作。这在javascript中是正常行为吗?如何使程序正确运行 var soda = require('soda-js'); var consumer = new soda.Consumer('data.seattle.gov'); var data_rows = []; var query = consumer.query() .withDataset('c3ri-wwcn') .limi

为什么尽管查询后有代码,但查询在代码之前运行。它打印一个空数组,然后在查询函数中执行所有操作。这在javascript中是正常行为吗?如何使程序正确运行

var soda = require('soda-js');
var consumer = new soda.Consumer('data.seattle.gov');
var data_rows = [];
var query = consumer.query()
    .withDataset('c3ri-wwcn')
    .limit(5)
    .getRows()
        .on('success', function(rows) { console.log(rows);
        console.log("here"); 
        data_rows = rows;
        console.log(data_rows);
        for (item in data_rows) {
            console.log(data_rows[item]);
        };

        })
        .on('error', function(error) { console.error(error); });

console.log(data_rows);
for (item in data_rows) {
    console.log(item);
};

这是工作中的异步JavaScript。您的getRows()被调用并开始执行它的任务。而不是等待结果;JavaScript执行剩余的代码。当getRows()返回结果时,代码中的on'success'或on'error'部分将被执行。我如何避免这种情况,并将查询保存为变量,以便在脚本的后续部分中使用?