从回调推送到数组

时间:2018-03-03 00:30:02

标签: node.js asynchronous callback

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

这是我现在的代码:

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);
});

请帮助我使用任何可以帮助我正确推送到数据库阵列的资源。谢谢!

1 个答案:

答案 0 :(得分:1)

对于可能遇到同样问题的任何人,请阅读Promises