2017-01-11 2 views
0

Я пытаюсь использовать метод фильтрации ASync, но я не получаю результат я ожидалAsync.js фильтрации массив не работает

async.filter([1, 3, 5], function (item, done) { 
     done(item > 1); 
    }, function (results) { 
     console.log(results); 
    }); 
    async.filter([1, 2, 3, 4, 5, 6], function(item, callback) { 
     if (item > 3) { 
      callback(true); 
     } else { 
     callback(false); 
     } 

    }, 
    function (result) { 
     console.log("result: " + result); 
    }); 

выход

правда

результат : true

а не 2 фильтрованных массива, что мне не хватает?

ответ

0

Я думаю, вы должны использовать немного другой синтаксис, как это указано здесь: async#filter

В результате в функции обратного вызова должен быть второй параметр (не первый): callback(null, true)

Например:

async.filter([1, 3, 5], function (item, done) { 
    done(null, item > 1); 
}, function (err, results) { 
    console.log(results); 
}); 
async.filter([1, 2, 3, 4, 5, 6], function(item, callback) { 
    if (item > 3) { 
     callback(null, true); 
    } else { 
    callback(false); 
    } 

}, 
function (err, result) { 
    console.log("result: " + result); 
}); 

jsbin#example

Смежные вопросы