小编Ber*_*rgi的帖子

由于URI名称中的空格,节点的exec()无法正常工作

var exec = require('child_process').exec
var cmd = 'C:\\Users\\Johnny Cash\\Desktop\\executeme.exe'

exec(cmd, function(e, stdout, stderr) {
  console.log(e);
  console.log(stdout);
  console.log(stderr);
});
Run Code Online (Sandbox Code Playgroud)

"C:\ Users\Johnny"未被识别为内部或外部命令

这必须是有史以来最新的问题,但如何在窗户上使用空格来逃避这些路径呢?它在这个空间被切断了,我所做的一切(单人或双人事先逃脱)似乎都可以解决问题.是否exec()做了一些格式,我不知道的?

javascript windows escaping path node.js

0
推荐指数
1
解决办法
2134
查看次数

Promise.join不使用箭头功能

我一直在处理一个函数,它返回几个数据库表的所有值.我正在尝试主动采用稳定的es6功能,这似乎是箭头功能的好机会.我使用蓝鸟作为承诺和续集作为我的ORM(它返回蓝鸟承诺的数据库查询)

/**
 * This does not work on node v4.2.0
 */
'use strict';

const Promise = require('bluebird');
const models = require('../database');

const resource = {
    browse: function browse() {
        return Promise.join(
            () => models.table_one.findAll(),
            () => models.table_two.findAll(),
            () => models.table_three.findAll(),
            function(table_one, table_two, table_three) {
                const response = {
                    table_one,
                    table_two,
                    table_three,
                };

                return response;
            });
    },
};

module.exports = resource;
Run Code Online (Sandbox Code Playgroud)

这不起作用

/**
 * But this does
 */
'use strict';

const Promise = require('bluebird');
const models = require('../database');

const resource = …
Run Code Online (Sandbox Code Playgroud)

javascript node.js bluebird

0
推荐指数
1
解决办法
313
查看次数

如何在angularjs中等待多个请求完成

在继续我的Web应用程序之前,我想要多个方法完全加载.为此,我做了以下 -

      function getData(){
        var defer = $q.defer();
        $http.get("/echo/json/").success(function(data, status) {
            getData2();
            getData3();
            $timeout(function(){        
                 defer.resolve(data);
            }, 1000); 
        });
        return defer.promise;
      }
Run Code Online (Sandbox Code Playgroud)

在这里,getData2()和getData3()也会执行ajax调用.所以我必须等待这些方法来完成调用,然后我必须返回main方法的承诺.

这很好,但给我性能问题.我可以用其他任何方式吗?

javascript performance angularjs angular-promise

0
推荐指数
1
解决办法
229
查看次数

用取消方法增加ES6承诺

我正在尝试编写一些代码,这些代码在启动一些可能长时间运行的异步活动后返回ES6承诺.但是,我希望有可能取消该活动,所以我想用'取消'方法来增加我的承诺.

一个sscce说明了我想要做的是如下:

function TimerPromise(timeInterval) {
    var timer;

    var p = new Promise(
        function(resolve,reject) {
            timer = setTimeout(
                function() {
                    resolve(true);
                },
                timeInterval
            );
        }
    );

    p.cancel = function() {
        clearTimeout(timer);
    };

    console.log("p.cancel is ",p.cancel);

    return p;
}

var t = TimerPromise(2000).then(function(res) { console.log("Result is ",res); });

t.cancel();
Run Code Online (Sandbox Code Playgroud)

在示例中,TimerPromise只设置一个计时器来模拟长时间运行的异步活动.

这是我在运行时得到的:

$ node test.js
p.cancel is  function () {
                timer.clearTimeout();
        }
/home/harmic/js/src/test.js:28
t.cancel();
  ^

TypeError: t.cancel is not a function
    at Object.<anonymous> (/home/harmic/js/src/test.js:28:3)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at …
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise cancellation es6-promise

0
推荐指数
1
解决办法
399
查看次数

什么:在jquery中意味着什么?

我遇到了一些具有以下内容的代码:

var game = {
    gameBoard: [0, 0, 0,
                   0, 0, 0,
                   0, 0, 0],
    user: 'X',
    yOn: '',
    newStep: function(){
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我很困惑,因为我从未见过:像之前那样使用过.我复制了代码并尝试通过添加=来改变它,无论哪里有一个:但我一直得到一个意外的标识符错误(我这样做是为了看看:是否与=相同,我猜不是).

javascript object-literal colon

0
推荐指数
1
解决办法
66
查看次数

es6代码在es5中被破坏了

我一直试图将我的代码从es6转换为es5,因为我的工作中有一些框架限制......虽然我一直在努力找到问题所在.由于某种原因,代码不能完全相同,并且没有错误......

有人可以告诉我,如果我已正确翻译?

这是ES6代码:

function filterFunction(items, filters, stringFields = ['Title', 'Description'], angular = false) {
    // Filter by the keys of the filters parameter
    const filterKeys = Object.keys(filters);

    // Set up a mutable filtered object with items
    let filtered;

    // Angular doesn't like deep clones... *sigh*
    if (angular) {
        filtered = items;
    } else {
        filtered = _.cloneDeep(items);
    }

    // For each key in the supplied filters
    for (let key of filterKeys) {
        if (key !== 'TextInput') {
            filtered = filtered.filter(item …
Run Code Online (Sandbox Code Playgroud)

html javascript ecmascript-6

0
推荐指数
1
解决办法
67
查看次数

关于函数式编程语言的陈述是否正确?

我正在读一本关于编译器设计的书,其中有一部分说的是,

不同语言的编译器的主要区别在于它们生成的代码.一般来说,可以说命令式和面向对象语言的编译器用汇编语言生成代码; 而功能语言编译器则用C或C++生成.

关于C/C++的最后一部分是否正确?我无法通过Google搜索找到任何内容,所以我在这里问.

compiler-construction functional-programming transpiler

0
推荐指数
1
解决办法
115
查看次数

闭包和 funarg 问题之间的区别?

我有一个错误的理解,过滤器功能是向下的 funarg 问题的一个例子吗?我在源面板下使用 chrome 调试器,并在范围部分下注意到了这一点。

我的描述截图

过滤器函数参数cb是闭包还是strainer闭包函数?我发现很难在网上整理有关闭包和 funarg 问题的信息。我显然不明白 funarg 问题或闭包,需要一些帮助吗?

function strainer(collection, cb) {
  return collection.reduce(function inner(acc, curr) {
    if (cb(curr)) {
      return acc.concat(curr);
    }
    return acc;
  }, []);
}

function even(number) {
  if (number % 2 === 0) {
    return true;
  }
  return false;
}

var collection = [1, 2, 3, 4, 5];

strainer(collection, even);
Run Code Online (Sandbox Code Playgroud)

背景:我的印象是私有变量返回到外部环境创建了闭包,但该示例看起来有所不同。

下面的 flintstones 函数示例在引号函数的范围内有闭包。(我认为这是向上的 funarg 问题)

function strainer(collection, cb) {
  return collection.reduce(function inner(acc, curr) {
    if (cb(curr)) {
      return acc.concat(curr); …
Run Code Online (Sandbox Code Playgroud)

javascript closures first-class-functions

0
推荐指数
1
解决办法
370
查看次数

Node.js:单变量,多个承诺

我想创建多个promise,我真的不关心这个代码中的种族,只要所有回调都完成了.

所以,我有一个变量,它包含所有数据,让我们说:

export interface IData {
    data1: string[],
    data2: string[],
    data3: string[]
}
Run Code Online (Sandbox Code Playgroud)

那三个是不相关的,我有一个数据提取器..说:

function getData(id: string): Promise<IData> {
    return new Promise((resolve, reject) => {
        var data = new TableFetcher();
        data.get(_id)
        .then((result : IData) => {
            resolve()
        })
    })
}
Run Code Online (Sandbox Code Playgroud)

现在,我想做一些像:

function x(): Promise<IData> {
    return new Promise((resolve,reject) => {
        var data: IData = {
            data1: getData('100'),
            data2: getData('200'),
            data3: getData('300')
        }
        resolve(data)
    })
}
Run Code Online (Sandbox Code Playgroud)

当所有getData promises都完成了.

它不需要链,但所有都可以单独运行,但我需要在完成后返回包含所有异步数据的数组.

我怎样才能做到这一点?

javascript node.js promise

0
推荐指数
1
解决办法
60
查看次数

javascript 循环(for 语句)在 21 亿次迭代后变慢了?

我试图对 javascript 和 .net core 进行基准测试,以便选择一个服务器端框架来提供一些需要迭代大型数组(大约 21 亿)的特定 Restful 服务。在处理一个简单的代码时,我意识到 node 在特定的数字迭代后有奇怪的行为。我在多个平台上重复并达到了相同的结果。测试平台为:

  • macOS catalina (nodeJS v.12.18) intel core i9 4ghz 6 core
  • linux centos 7 (nodeJS v.12.18) vm intel core i9 4ghz 2 core
  • 谷歌浏览器版本 84.0.4147.105(官方版本)(64 位)
  • Mozilla Firefox 版本 78.2

运行视频显示出人意料地将处理时间从 300 毫秒增加到 600 毫秒大约两倍

示例代码:

1.节点:

var cnt = 0;
var logPeriod=100000000;
var max=10000000000;
for (let i = 0; i < max; i++) {
  if (i % logPeriod === 0) {
    // var end = Date.now(); …
Run Code Online (Sandbox Code Playgroud)

javascript for-loop v8 slowdown

0
推荐指数
1
解决办法
143
查看次数