Невозможно использовать функцию «карта» в асинхронном модуле

Я использую модуль "async" для node.js и мне нужно использовать метод "map".
В основном у меня есть массив, который содержит другие массивы. Внутренние массивы содержат 2 элемента, тип и имя файла изображения.

var arr0 = [];
var arr1 = ["type1", "image1.jpg"];
jsonArr.push(obj1);
var arr2 = ["type2", "image2.jpg"];
jsonArr.push(obj2);

Для каждого внутреннего массива я хочу получить кодировку base64 изображения, идентифицируемого по имени файла, и добавить эту строку кодирования в качестве третьего элемента массива.

Я делаю что-то вроде этого:

var fs = require("fs");
var async = require("async");

function getImageEncoding(arr, callback){
    console.log("getEncoding:" + arr + "\n");

    // Get image filename
    image = arr[1];

    // Read file and get base64 encoding
    fs.readFile(image, function(err, original_data){
    var base64Image = original_data.toString('base64');
    console.log("test:" + base64Image + "\n");

        // Modify current arr by appendingthe base64 encoding of the image
        callback(null, arr.push(base64Image));
    });
}

async.map(arr0, getImageEncoding, function(err, results){
console.log("in async.map: " + results + "\n");
});

Я знаю, что вещи arr.push (base64Image) не правильные, но я не могу понять, как вернуть измененный элемент.

В документации map (arr, iterator, callback) указано:

«Итератор вызывается с элементом из массива и обратным вызовом, когда он завершил обработку».

Дело в том, что я не могу понять, как передать обратный вызов новыми массивами.

Ответы на вопрос(3)

Ваш ответ на вопрос