小编Ric*_*unn的帖子

Promise.all()在运行服务器时无法解析 - 否则运行正常

我写了一个小工具,在调用其他几个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)

javascript node.js promise

9
推荐指数
1
解决办法
625
查看次数

PowerShell 重定向并不总是有效

重定向警告流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)

powershell

9
推荐指数
1
解决办法
712
查看次数

减少时间序列数组并聚合数据

我看到很多帖子/问题都解决了这个问题,所以我认为这并不是微不足道的。我是一个初学者,正在寻找更优雅的解决方案。

我需要将这种包含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)

arrays reduce node.js

6
推荐指数
1
解决办法
467
查看次数

标签 统计

node.js ×2

arrays ×1

javascript ×1

powershell ×1

promise ×1

reduce ×1