results = []
chunk_size = 10
while(array.length > 0){
results.push(array.splice(0, chunk_size))
}
Вы влияете на немедленное возвращаемое значение iwlist.scan()
в переменную n
. Эта функция использует классический обратный вызов nodejs для обработки асинхронного поведения, поэтому она всегда может возвращать неопределенное значение, поскольку результат переходит в обратный вызов.
Два решения:
1) Влиять на результат переменной в обратном вызове
function scan(myCallback) {
iwlist.scan({
iface : 'wlp1s0',
show_hidden : true
}, myCallback);
});
const Server = http.createServer(function(req, res){
var n;
scan(function(error, result) {
n = result;
res.write(n);
res.end();
});
});
2) Вы превращаете существующую функцию в обещание, используя Promisify [118 ]
var scanAsync = utils.promisify(iwlist.scan)
function async scan() {
// Will return the result as a promise
return scanAsync({
iface : 'wlp1s0',
show_hidden : true
});
};
try {
var n = await scan();
} catch (e) {
// Handle error
}