Node.js 从回调推送到数组

Node.js 从回调推送到数组,node.js,asynchronous,callback,Node.js,Asynchronous,Callback,我的任务是在NodeJS中完成一个项目,我是Node的新手。我试图从回调中推送到数组,因为下一步我需要数组,当我在填充数组后点击下一个函数,但它没有被填充时,我随后发现这是从一个异步函数推送到数组的结果,这个异步函数在将来某个时候执行(类似这样的事情) 这是我现在的代码: const input_image = process.argv.slice(2); if (input_image.length == 0) { console.log('node index.js <file

我的任务是在NodeJS中完成一个项目,我是Node的新手。我试图从回调中推送到数组,因为下一步我需要数组,当我在填充数组后点击下一个函数,但它没有被填充时,我随后发现这是从一个异步函数推送到数组的结果,这个异步函数在将来某个时候执行(类似这样的事情)

这是我现在的代码:

const input_image = process.argv.slice(2);
if (input_image.length == 0) {
    console.log('node index.js <filename>');
    return ;
}
const read_files = require('node-readfiles');
const average_color = require('image-average-color');
const color_space = require('color-space');
var db = [];
read_files('dbb', {
    filenameFormat: read_files.FULL_PATH,
    readContents: false
}, (err, filename) => {
    if (err)
        throw err;
    average_color(filename, (err, color) => {
        if (err)
            throw err;
        db.push({
            filename: filename,
            space: color_space.rgb.lab([color[0], color[1], color[2]])
        });
    });
}).catch((err) => {
   console.log('Error reading files:', err.message);
});
const input\u image=process.argv.slice(2);
如果(输入_image.length==0){
log('node index.js');
返回;
}
const read_files=require('node-readfiles');
const average_color=require('image-average-color');
const color_space=require('color-space');
var db=[];
读取_文件('dbb'{
filenameFormat:read_files.FULL_路径,
readContents:错误
},(错误,文件名)=>{
如果(错误)
犯错误;
平均颜色(文件名,(错误,颜色)=>{
如果(错误)
犯错误;
推送({
filename:filename,
空格:color\u space.rgb.lab([color[0]、color[1]、color[2])
});
});
}).catch((错误)=>{
console.log('读取文件时出错:',err.message);
});

请帮助我找到任何可以帮助我正确推送到db阵列的资源。谢谢大家!

对于任何可能有相同问题的人,请仔细阅读
承诺

我不确定如何准确地解决您的问题。但是,node readfiles的api有点奇怪和混乱。我建议改用内置的。它将为您提供一个文件名数组,该数组更直接,应该可以更好地使用该异步库中的一些函数,如
map
one。