gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 04:08:25 25 4
gpt4 key购买 nike

我正在调用以下代码来导入搜索查询函数

var match_all = require('./match_all');                                                                                                                                                                                                        
var data=match_all.func();
console.log('uo yoyo');
console.log(data);

Match_all如下:

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。所以我的输出看起来像

悠悠悠

未定义

...elasticsearch 搜索日志...

这里出了什么问题?

最佳答案

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

关于javascript - 当导入的函数需要时间才能完成时,如何从nodeJS中的require导入字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44440893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com