我有一个功能,我想用它来轮询从 gdax 交易所上以太坊交易开始到当前的历史数据。我希望代码轮询 100 个结果(一次最多允许)将结果插入 mongodb,添加 100,然后重复,直到获得所有历史数据。但是,我所写的执行顺序不同。首先它将 for next 中的所有数字相加,然后执行所有 http authedclient 请求(尽管它正确使用了为每个请求添加 100 的变量),然后将所有数据放入 mongodb。我遇到的问题是,当数据插入 mongodb 客户端时,连接已关闭。我怎样才能让它按照我想要的顺序执行每个操作?Pastebin 贴在下面。请注意,我使用的代码已发生重大更改以适应其他错误,将插入循环更改为 insertMany,但如果有人可以提供帮助,我可以正确整合建议。提前致谢。
https://pastebin.com/1BHi9RQV
var i = 100;
for (; i < 18750000; ) {
publicClient.getProductTrades({ after: i }, function (err, response, data) {
if (err) {
console.log(err);
return;
}
MongoClient.connect(url, function (err, db) {
if (err) {
console.log(err);
return;
}
var myobj = { data };
for (item in data) {
db.collection("EthTest").insertOne(data[item], function (err, res) {
if (err) {
console.log(err);
return;
}
});
console.log(data[item].trade_id);
}
db.close();
});
});
i = i + 100;
};
还下载了堆栈应用程序以正确发布链接和代码。移动网站不允许我这样做。对不起!