javascript - 如何在节点js中使流同步?
问题描述
我在 orderer 中调用某个函数。这些函数异步工作,不要等待进程完成,但我想让它同步。请告诉我应该怎么做。
下面是函数
getMetaData(url).then((a) => {
console.log("final a="+a)
return a
});
function getMetaData(url) {
console.log("In getmetadata");
return new Promise((resolve, reject) => {
request({ url, encoding: null }, (err, resp, buffer) => {
console.log("In request response");
pdf(buffer).then(function (data) {
var mdata = data.metadata;
var filtered = {}
for (key in mdata._metadata) {
if (key.match(/^pdfx:Blockchain/)) filtered[key] = mdata[key];
}
if (Object.keys(filtered).length === 1) {
isMetaData = true
}
a.isMetaData = isMetaData
resolve(a);
console.log("a value set");
});
});
});
}
console.log("In the end")
下面是输出
In getmetadata
In the end
In request response
a value set
final a=[object Object]
但我想In the end
最后打印出来,它应该等待整个过程完成。
解决方案
推荐阅读
- python - TypingError:在 nopython 模式管道中失败(步骤:nopython 前端) float32 类型的未知属性“形状”
- angular - 使用 Guard 读取功能模块的存储状态,以便在根级别中使用
- visual-studio-code - Visual Studio 代码中断
- python - ModuleNotFoundError:没有名为“redisgraph”的模块
- mongodb - 基于mongodb中子文档数组中的数组的条件计数?
- chart.js - Chart.Js饼图点击
- html - 神秘闪烁的黑线,几乎就像 NextJS 中的边框
- c++ - Qt -- QPlainTextEdit::extraSelections 覆盖 QSyntaxHighlighter
- php - minimum_number_should_match 在 Elasticsearch 新版本中不起作用
- javascript - 从 Javascript 中的属性执行函数