Javascript 从该脚本中提取字段

Javascript 从该脚本中提取字段,javascript,sdk,splunk,Javascript,Sdk,Splunk,我正试图使用splunk javascript SDK使用给定代码片段中的字段,该代码片段如下所示: 其思想是获取数组变量“rows”,以便在运行此代码段后,我可以运行console.logrows 在该行下面添加一个返回值对我来说不起作用。如果您只想全局访问行,您可以声明var行;在全局范围中,使用rows=results.rows;。您甚至不必声明它,只要在赋值中省略var关键字 请注意,所述赋值是在异步回调中调用的;这意味着它可能不会在服务完成后立即执行。搜索。。。返回。在某些情况下,异步

我正试图使用splunk javascript SDK使用给定代码片段中的字段,该代码片段如下所示:

其思想是获取数组变量“rows”,以便在运行此代码段后,我可以运行console.logrows


在该行下面添加一个返回值对我来说不起作用。

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


请注意,所述赋值是在异步回调中调用的;这意味着它可能不会在服务完成后立即执行。搜索。。。返回。在某些情况下,异步函数可能会在函数返回后很长一段时间调用它们的回调。因此,如果您希望代码仅在操作完成后执行,请将/调用该代码放入回调中。

谢谢您的帮助。我如何在回调中添加“console.logrows”?我不清楚函数的哪个部分是异步的以及为什么。我应该澄清一下,我的意图是通过app.get{[splunk api call];res.sendrows;}发送数组“rows”,但我想只有在异步函数完成执行后,您的最终回调才是functionerr,results,job{…},它是一个匿名函数,在所有异步任务结束时被调用。在var行后面的右边=。。。;插入res.sendrows;你应该很乐意去;res变量是从封闭的代码中捕获的异步编程可能非常混乱;请查看有关回调如何工作的详细解释。非常感谢:在您回复之前,我正在阅读他们的页面,您帮助清理了页面。现在所有人都在工作,非常感谢:
// 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);
      }
    });

  }
);