node.js - 在移动到下一行代码之前,如何让节点 js 异步等待等到进程完成?
问题描述
我知道有人问过这个问题,但答案不适合我的情况
下面的代码在进入下一行代码之前没有等待。我究竟做错了什么?
getStatistics
应该等到进程完成后再执行getTileGeoJsonBB
await getStatistics();
let bb = getTileGeoJsonBB(tileInfo);
异步功能:
async function getStatistics() {
tileStats = await converter.calculateStatistics(tilePath);
}
上面的代码converter.calculateStatistics
调用了这个异步函数
module.exports.calculateStatistics = async function (inputFilePath) {
const pipeline = promisify(stream.pipeline);
let png = new PNG({})
return new Promise((resolve) => {
fs.createReadStream(inputFilePath)
.pipe(png)
.on("parsed", () => {
// do parsing logic
resolve(getTileStatistics(png))
})
})
}
let getTileStatistics = function (png) {
stats = {};
stats.minHeight = Number.MAX_VALUE;
stats.maxHeight = Number.MIN_VALUE;
return stats
解决方案
推荐阅读
- macos - 如何获取 Automator 应用程序的自身路径?
- node.js - 将 cookie 发送回客户端
- dojo - 在 dojo BorderContainer 中设置中心窗格的最小尺寸
- flutter - Flutter textfield onChanged - 检测最后输入的文本是否是标签句柄'@mention'
- docker - 将 Docker Entrypoint 日志实时发送到 APP
- javascript - Vercel 现在服务器不适用于谷歌电子表格
- text - 从缓冲区中删除换行符(在导入 ORG 以在保留段落的同时展开文本时很有用)
- python - 通过搜索另一个数据框来映射新列的值
- tensorflow - .pb 和 .h5 之间的区别
- mysql - 在 Spring Boot 中编译 SQL 过程