小编j03*_*03m的帖子

使用node-inspector调试jasmine-node测试

有没有人知道这是否可能?节点检查器的大部分示例似乎都适合调试调用的网页.我希望能够调试jasmine-node测试.

debugging node.js jasmine

31
推荐指数
2
解决办法
8419
查看次数

如何以编程方式检测nodejs中的调试模式?

我已经看到这个问题涉及其他平台/语言 - 任何想法?我想做点什么:

if (detectDebug())
{
    require('tty').setRawMode(true);    
    var stdin = process.openStdin();

    stdin.on('keypress', function (chunk, key) {
        DoWork();
    }
}
else
{
    DoWork();
}
Run Code Online (Sandbox Code Playgroud)

我希望能够在调试时切换键盘输入作为脚本的开始,这样我就可以有时间启动chrome来监听我的node-inspector端口.

***快速更新 - 我猜我实际上可以使用"process.argv"来检测是否传入了--debug.这是最佳/正确的方法吗?

debugging node.js

31
推荐指数
8
解决办法
2万
查看次数

Bluebird Promise.all - 多个承诺完成了聚合成功和拒绝

今天有人用蓝鸟提出了一个有趣的案例,处理多项承诺的最佳方法是什么,我们对于停止特定的履行或拒绝不感兴趣,而是对检查最终结果感兴趣.一个例子:

var p1 = new Promise(function(f,r){
    setTimeout(function(){
        console.log("p1");
        f("yay");
    }, 100);

});

var p2 = new Promise(function(f,r){
    setTimeout(function(){
        console.log("p2");
        r(new Error("boo"));
    }, 200);

})

var p3 = new Promise(function(f,r){
    setTimeout(function(){
        console.log("p3");
        r(new Error("yay"));
    }, 300);

});

var p4 = new Promise(function(f,r){
    setTimeout(function(){
        console.log("p4");
        f("yay");
    }, 400);

});


//Promise.all([p1,p2, p3, p4]).then(function(p){
//    console.log("Results:",p);
//}).error(function(e){
//    console.log("Error:",e);
//});

Promise.map([p1,p2, p3, p4],function(p){
    console.log("results:",p);
}, {concurrency:10}).error(function(e){
    console.log("Error:",e);
});
Run Code Online (Sandbox Code Playgroud)

在这里,如果我们运行地图或所有被拒绝的承诺将导致处理程序不报告结果.

例如,上面实现的运行Promise.map的结果是:

debugger listening on port 65222
p1
results: yay
p2
Error: [Error: boo]
p3
p4 …
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise bluebird

29
推荐指数
1
解决办法
2万
查看次数

Node.js console.log性能

如果您的Node.js代码中充满了console.log语句,您是否会引发性能问题?是否值得调试/生产切换这个开/关?我意识到日志记录对于一般情况来说很重要 - 但我一般都很好奇控制台输出是否会受到性能影响?

在chrome中的客户端脚本中,如果控制台处于打开状态,它肯定会降低性能.

console performance logging node.js

23
推荐指数
3
解决办法
1万
查看次数

使用bluebird承诺进行异步异常处理

处理此方案的最佳方法是什么.我处于受控环境中,我不想崩溃.

var Promise = require('bluebird');

function getPromise(){
    return new Promise(function(done, reject){
        setTimeout(function(){
                throw new Error("AJAJAJA");
        }, 500);
    });
}

var p = getPromise();
    p.then(function(){
        console.log("Yay");
    }).error(function(e){
        console.log("Rejected",e);
    }).catch(Error, function(e){
        console.log("Error",e);
    }).catch(function(e){
        console.log("Unknown", e);
    });
Run Code Online (Sandbox Code Playgroud)

从setTimeout中抛出时,我们总是得到:

$ node bluebird.js

c:\blp\rplus\bbcode\scratchboard\bluebird.js:6
                throw new Error("AJAJAJA");
                      ^
Error: AJAJAJA
    at null._onTimeout (c:\blp\rplus\bbcode\scratchboard\bluebird.js:6:23)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)
Run Code Online (Sandbox Code Playgroud)

如果抛出发生在setTimeout之前,那么bluebirds catch会把它拿起来:

var Promise = require('bluebird');

function getPromise(){

    return new Promise(function(done, reject){
        throw new Error("Oh no!");
        setTimeout(function(){
            console.log("hihihihi")
        }, 500);
    });
}

var p = getPromise();
    p.then(function(){ …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous node.js promise bluebird

12
推荐指数
1
解决办法
7360
查看次数

7
推荐指数
1
解决办法
2866
查看次数

Javascript代码分析和最佳实践

是否有任何工具可以帮助程序员真正想要类型安全和更严格的c#或java等javascript语言规则?

例如,某些东西说分析了源文件并找到了未声明的变量或定义类型对象的js文件,比如int或string?

javascript code-analysis

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

查看堆栈的这个C#实现的任何问题?

我在面试条件下迅速写了这篇文章,我想把它发布到社区,看看是否有更好/更快/更清洁的方式去做.怎么可以这个优化?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Stack
{
    class StackElement<T>
    {
        public T Data { get; set; }
        public StackElement<T> Below { get; set; }
        public StackElement(T data)
        {
            Data = data;
        }
    }

    public class Stack<T>
    {
        private StackElement<T> top;

        public void Push(T item)              
        {
            StackElement<T> temp;
            if (top == null)
            {
                top = new StackElement<T>(item);
            }
            else
            {
                temp = top;
                top = new StackElement<T>(item);
                top.Below = temp;                
            }
        }

        public T Pop()
        { …
Run Code Online (Sandbox Code Playgroud)

c# optimization stack

5
推荐指数
1
解决办法
260
查看次数

libpurple的替代方案?

我有一个应用程序,它将成为订阅服务的前端.我想在应用程序中嵌入一个通道不可知的信使(gchat,msn,yahoo,facebook等)(这样做有很多关键业务驱动因素).我已经检查了libpurple,它似乎有我需要的一切,但我相信如果我在我的部署包中包含libpurple(甚至作为一个dll),我将不得不GPL我的父应用程序.

我相信,这不会是一个选择(虽然它会很好) - libpurple的许可证是否有更少的限制许可?

libpurple

5
推荐指数
0
解决办法
869
查看次数

批评这个C#Hashmap实现?

我在C#中写了一个hashmap作为自学练习.我想将链接实现为碰撞处理技术.起初我以为我只是使用GetHashCode作为我的哈希算法,但我很快发现使用GetHashCode返回的数字并不总是可行的(如果你想索引和数组,那么int的大小会导致内存不足.数字和数字可以是负数:().所以,我提出了一种缩小数字的kludgey方法(参见MyGetHashCode).

有没有人对此实现(哈希函数和一般情况)有任何指针/提示/批评?提前致谢!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace HashMap
{
    class Program
    {

        public class MyKVP<T, K>
        {
            public T Key { get; set; }
            public K Value { get; set; }
            public MyKVP(T key, K value)
            {
                Key = key;
                Value = value;
            }
        }


        public class MyHashMap<T, K> : IEnumerable<MyKVP<T,K>>
            where T:IComparable
        {

            private const int map_size = 5000;
            private List<MyKVP<T,K>>[] storage;
            public MyHashMap()
            {
                storage = new List<MyKVP<T,K>>[map_size];
            }

            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
            { …
Run Code Online (Sandbox Code Playgroud)

c# hashmap data-structures

3
推荐指数
2
解决办法
4031
查看次数

循环中javascript中函数声明与函数表达式的表现

在下面的jsperf中:http://jsperf.com/defined-function-vs-in-loop-function/3

你会注意到这段代码:

for (var i = 0; i < loops; i++) {
   function func(a, b) {
    return a + b;
  };
  func(i, i);
}
Run Code Online (Sandbox Code Playgroud)

执行此代码:

function declaredFn(a, b) {
    return a + b;
};


for (i = 0; i < loops; i++) {
    declaredFni, i);
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码:

for (i = 0; i < loops; i++) {
  var func = function(a, b) {
    return a + b;
  };
  func(i, i);
}
Run Code Online (Sandbox Code Playgroud)

比这段代码慢得多:

var expfunc = function(a, b) {
  return …
Run Code Online (Sandbox Code Playgroud)

javascript performance

2
推荐指数
1
解决办法
131
查看次数

更改html5画布的视图"中心"

如果图像为1024x1250且画布元素为600x800,我可以将图像绘制到画布中心,使得画布本质上是较大图像的较小视图端口.然后,我想允许该中心点移动,从而产生视口正在查看图像的不同部分的错觉.

现在我已经完成了这种方式,我重新绘制了我想要看到画布的图像部分,但我觉得这不是最佳的.有没有办法将整个图像渲染到画布然后以某种方式"转换"我当前的中心点,以便这种视图转换发生在幕后,希望在某些原生图层中?

html5-canvas

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

Office 2011 for Mac用什么编程语言编写?

我很好奇它是用目标C写的还是可能微软考虑更严肃地对待单声道?任何.NET都是Office 2011 for mac?

c# macos ms-office

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