我写了一个小工具,在调用其他几个promises后返回一个promise.当我单独测试它时,这个工具很有用,在下面的例子中大约需要10秒.但是,当我尝试将它与http服务器实例一起运行时,如果有的话,需要几分钟才能返回!
我很确定我只是误解了一些东西,因为我不是非常精通Node.如果有人能够发现问题,或建议使用promises来替代处理异步方法,请告诉我们!
只是为了澄清,这是Promise.all通过返回的traceroute这是挂功能.子承诺都按预期解决.
编辑:正如评论中所建议的那样,我也尝试了一个没有调用Promise.all的递归版本; 同样的问题.
这是一个工作的独立版本,在没有运行任何http服务器实例的情况下调用:
const dns = require('dns');
const ping = require('net-ping');
var traceRoute = (host, ttl, interval, duration) => {
var session = ping.createSession({
ttl:ttl,
timeout: 5000
});
var times = new Array(ttl);
for (var i=0; i<ttl; i++){
times[i] = {'ttl': null, 'ipv4': null, 'hostnames': [], 'times': []}
};
var feedCb = (error, target, ttl, sent, rcvd) => {
var ms = rcvd - sent;
if (error) { …Run Code Online (Sandbox Code Playgroud) 重定向警告流的New-PSSession,因为我相信它应该不起作用。无论我尝试抑制/重定向它做什么,我总是收到以下(黄色)警告消息到控制台:
WARNING: Using New-PSSession with Basic Authentication is going to be deprecated soon, checkout https://aka.ms/exops-docs for using Exchange Online V2 Module which uses Modern Authentication.
Run Code Online (Sandbox Code Playgroud)
PowerShell 重定向/流允许该消息渗透到控制台/std_out,我错过了什么?
根据互联网的智慧,我尝试了以下方法:
New-PSSession *>$null ...
Run Code Online (Sandbox Code Playgroud)
New-PSSession ... | Out-Null
Run Code Online (Sandbox Code Playgroud)
New-PSSession *>$null ... -OutVariable x -ErrorVariable y -WarningVariable z
Run Code Online (Sandbox Code Playgroud)
New-PSSession *>$null ... -WarningAction SilentlyContinue
Run Code Online (Sandbox Code Playgroud)
$WarningPreference = 'SilentlyContinue'
New-PSSession ...
Run Code Online (Sandbox Code Playgroud)
我什至尝试临时控制std_out:
$std_out = [System.Console]::Out
$out_writer = New-Object IO.StringWriter
[System.Console]::SetOut($out_writer)
$std_err = [System.Console]::Error
$err_writer = New-Object IO.StringWriter …Run Code Online (Sandbox Code Playgroud) 我看到很多帖子/问题都解决了这个问题,所以我认为这并不是微不足道的。我是一个初学者,正在寻找更优雅的解决方案。
我需要将这种包含1分钟详细数据的数组减少为5分钟数据。只需计算 5 分钟内连续值的总和,然后重新创建一个较短的数组。那么时间戳“created_at”应该是 5 分钟时间段结束的时间点。
let array = [
{ steps: 40, created_at: '2022-09-03T11:36:00.000Z' },
{ steps: 13, created_at: '2022-09-03T11:37:00.000Z' },
{ steps: 40, created_at: '2022-09-03T11:38:00.000Z' },
{ steps: 40, created_at: '2022-09-03T11:39:00.000Z' },
{ steps: 34, created_at: '2022-09-03T11:40:00.000Z' },
{ steps: 86, created_at: '2022-09-03T11:41:00.000Z' },
{ steps: 23, created_at: '2022-09-03T11:42:00.000Z' },
{ steps: 78, created_at: '2022-09-03T11:43:00.000Z' },
{ steps: 67, created_at: '2022-09-03T11:44:00.000Z' },
{ steps: 80, created_at: '2022-09-03T11:45:00.000Z' },
{ steps: 34, created_at: '2022-09-03T11:46:00.000Z' },
{ steps: 64, created_at: …Run Code Online (Sandbox Code Playgroud)