Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当导入的函数需要一段时间才能完成时,如何从nodeJS中的require导入字符串?_Javascript_Node.js_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Javascript,Node.js,elasticsearch" /> elasticsearch,Javascript,Node.js,elasticsearch" />

Javascript 当导入的函数需要一段时间才能完成时,如何从nodeJS中的require导入字符串?

Javascript 当导入的函数需要一段时间才能完成时,如何从nodeJS中的require导入字符串?,javascript,node.js,elasticsearch,Javascript,Node.js,elasticsearch,我调用下面的代码,它导入了一个搜索查询函数 var match_all = require('./match_all');

我调用下面的代码,它导入了一个搜索查询函数

var match_all = require('./match_all');                                                                                                                                                                                                        
var data=match_all.func();                                                                                                                                                                                                                     
console.log('uo yoyo');                                                                                                                                                                                                                        
console.log(data);
所有匹配项如下所示:

var string_of_da;                                                                                                                                                                                                                               

//a function which queries for all pid and syscalls                                                                                                                                                                                            
var string = function(){                                                                                                                                                                                                                       
var client = new elasticsearch.Client({                                                                                                                                                                                                        
      .....
    })

//queries to ES                                                                                                                                                                                                                                
function getmeres(client,syscall){                                                                                                                                                                                                             
        client.search({                                                                                                                                                                                                                        
         ........                                                                                                                                                                                                                        

},function (error,response) {                                                                                                                                                                                                                  
      .......                                                                                                                                                                                                                            
showdocs(d)                                                                                                                                                                                                                                    
}                                                                                                                                                                                                                                              
});                                                                                                                                                                                                                                            
}                                                                                                                                                                                                                                                                                                                                                                                                                                      
function showdocs(d){                                                                                                                                                                                                                          
var da = d["hits"]["hits"].map(function(i){                                                                                                                                                                                                    
        return i['_source'];                                                                                                                                                                                                                   
});                                                                                                                                                                                                                                            
string_of_da = JSON.stringify(da,null,'\t');                                                                                                                                                                                                   
}                                                                                                                                                                                                                                              
return string_of_da;                                                                                                                                                                                                                           
};                                                                                                                                                                                                                                             
module.exports.func = string;
module.exports.string = string_of_da;
现在,当我执行前面的js程序时,它会正确地进行查询,但在调用
match_all.func()
并返回字符串之前,会调用console.log。所以我的输出看起来像

uo yoyo

未定义

…elasticsearch搜索日志


这里出了什么问题

因为您正在使用回调。回调工作是异步的。这就是console.log首先打印的原因。在异步中,它不会等到他得到响应。回调是函数的异步等价物。在给定任务完成时调用回调函数。节点大量使用回调。Node的所有API都以支持回调的方式编写。

谢谢。我看到我必须传递一个名为callback的参数,并将数据提供给这个回调函数。谢谢