du в PowerShell?

Вы влияете на немедленное возвращаемое значение 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
}

24
задан Peter Mortensen 10 November 2014 в 22:49
поделиться

1 ответ

Реализация доступна в разделе "Исследование Beautiful Languages ​​»блог:

« Реализация 'du -s *' в Powershell »

function directory-summary($dir=".") { 
  get-childitem $dir | 
    % { $f = $_ ; 
        get-childitem -r $_.FullName | 
           measure-object -property length -sum | 
             select @{Name="Name";Expression={$f}},Sum}
}

(Код владельца блога: Луис Диего Фальяс)

Вывод:

PS C:\Python25> directory-summary

Name                  Sum
----                  ---
DLLs              4794012
Doc               4160038
include            382592
Lib              13752327
libs               948600
tcl               3248808
Tools              547784
LICENSE.txt         13817
NEWS.txt            88573
python.exe          24064
pythonw.exe         24576
README.txt          56691
w9xpopen.exe         4608
28
ответ дан 28 November 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: