javascript - 循环中异步等待后节点脚本不会停止
问题描述
const axios = require("axios");
const Parser = require("./utils/parser");
const WebStore = require("./models/webstore");
const mongoose = require("mongoose");
require("./db/connection");
require("dotenv").config();
const url = "";
const app_secret = process.env.APP_SECRET;
const buff = new Buffer(app_secret);
const base64 = buff.toString("base64");
axios
.get(url, {
headers: {
Accept: "application/json",
Authorization: `Basic ${base64}`,
},
params: {
from_date: "2020-02-19",
to_date: "2021-02-21",
},
})
.then(async (response) => {
const data = response.data.split("\n");
const events = [];
data.forEach((point) => {
try {
const dat = Parser.toDB(JSON.parse(Parser.parser(point)));
events.push(dat);
} catch (err) {}
});
events.forEach(async (event) => {
try {
const e = new WebStore(event);
await e.save();
console.log("saved");
} catch (err) {
console.log("fail");
}
});
})
.catch((err) => {
console.error(err);
});
所以执行后脚本saved
多次输出,但脚本本身并没有关闭。
执行后数据存储在数据库中,我尝试过 mongoose.disconnect(),也尝试过 mongoose.connection.close()。我该如何解决这个问题?
解决方案
推荐阅读
- html - 使用 CSS 网格在移动设备的顶部和底部拆分侧边栏
- javascript - Highcharts Annotation SVG 不随其他形状移动
- python-3.x - 在 docker 容器内安装 openpose - dockerfile 的安装问题
- c# - 谷歌图表与 asp.net MCV
- python - 提取两个字符串之间的差异
- javascript - 联系表格未解析所有字段
- datetimepicker - 如何在 ng2-smart-table 中添加 Datetimepicker
- encryption - 使用带有 128 位密钥和 PBKDF2 的 AES 使用 Java 加密体系结构进行文件加密
- mysql - 如何使用连接查询多个弱表
- firebase - Firebase 中缺少通配符身份验证选项的解决方法?