从此脚本中提取字段

Extracting a field from this script

我正在尝试使用 splunk javascript SDK(找到 here)使用此给定代码片段中的字段:

// Search everything and return the first 100 results
var searchQuery = "search * | head 100";

// Set the search parameters
var searchParams = {
  exec_mode: "normal",
  earliest_time: "2012-06-20T16:27:43.000-07:00"
};

// Run a normal search that immediately returns the job's SID
service.search(
  searchQuery,
  searchParams,
  function(err, job) {

    // Display the job's search ID
    console.log("Job SID: ", job.sid);

    // Poll the status of the search job
    job.track({period: 200}, {
      done: function(job) {
        console.log("Done!");
        // Get the results and print them
        job.results({}, function(err, results, job) {
          var rows = results.rows;
         //I want the 'rows' array
        });

      },
      failed: function(job) {
        console.log("Job failed")
      },
      error: function(err) {
        done(err);
      }
    });

  }
);

我的想法是获取可变数组 'rows' 以便在这个片段 运行s 之后我可以说 运行 console.log(行).

在行下方添加 return 对我不起作用。

如果您只想全局访问 rows,您可以在全局范围内声明 var rows; 并使用 rows = results.rows;。只要您在作业中省略 var 关键字,您甚至不必真正声明它。

请注意,上述赋值是在异步回调中调用的;这意味着它可能不会在 service.search(...) returns 之后立即执行。在某些情况下,异步函数可能会在函数 returns 之后很长时间才调用其回调。因此,如果您希望仅在操作完成后执行代码,put/call 回调中的代码。