【发布时间】:2018-06-18 20:16:16
【问题描述】:
我正在使用一个名为 Okrabyte 的包从文件夹中的每个图像文件中提取单词。结果应该是一个新数组,其中包含我可以在其他函数中使用的提取文本。
当我运行这个时:
var fs = require("fs");
var okrabyte = require("okrabyte");
fs.readdir("imgs/", function(err, files){
files.map((file)=>{
okrabyte.decodeBuffer(fs.readFileSync("imgs/"+ file), (err, data)=>{
let splitWords = data.split(" ");
let word = splitWords[0].substr(1);
console.log(word);
})
})
})
控制台记录每个单词。要返回包含这些单词的数组,我尝试了以下方法:
async function words() {
await fs.readdir("imgs/", function (err, files) {
return files.map(async (file) => {
await okrabyte.decodeBuffer(fs.readFileSync("imgs/" + file), async (err, data) => {
let splitWords = data.split(" ");
let word = splitWords[0].substr(1);
return word
})
})
})
}
var testing = await words();
console.log(testing);
这给了undefined 我试过把所有东西都变成一个承诺,我试过 async-await,我试过把每个单词推入一个新数组并在闭包中返回该数组,但没有任何效果 - 我是什么做错了吗??
【问题讨论】:
标签: javascript arrays node.js async-await fs