0

我正在尝试使用网站的 api 制作程序,但提供的文档非常稀疏,我真的很难取得任何进展。这是我目前正在处理的代码示例。

var arr = database.search('search query', {parameter: value}, function(err, data){
    console.log(data);
});

问题是,当我将数据写入控制台时,一切正常。它使用我需要的所有数据打印一个分页字典。这就是问题所在...

如果我尝试用类似的东西替换块中间的代码return data,或者尝试将它存储在类似的变量中arr = data;,我不会得到所有记录到控制台的数据。

我想要发生的是能够将此搜索的结果存储到字典对象中,以便我可以在我的程序中使用这些数据。任何帮助表示赞赏。

4

1 回答 1

0

很抱歉告诉我我不能在这里添加评论,但我认为这是一个异步问题?假设这是一个异步问题,这意味着 database.search 异步运行

let savedData
var arr = database.search('search query', {parameter: value}, function(err, data){
    console.log("data returned =",data);
    savedData = data
});
console.log("savedData =", savedData)

如果您这样做,您将无法在控制台中为 savedData 记录任何数据,因为该过程是异步的。在将数据分配给savedData之前触发了savedData的console.log,但实际上savedData存储了返回的数据。

但是如果你在回调函数中记录 savedData,你应该得到所有的数据

 let savedData
    var arr = database.search('search query', {parameter: value}, function(err, data){
        console.log("data returned =",data);
        savedData = data;
        console.log("savedData =", savedData)
    });

请给我更多信息以确定问题,谢谢

于 2021-06-01T03:38:58.027 回答