小编and*_*sit的帖子

Javascript在WebSocket实例化中没有捕获错误

我的套接字当前抛出net :: ERR_CONNECTION_REFUSED,因为服务器没有运行,我希望它现在可以运行.

问题是以下代码不能捕获错误.在控制台中,我在第2行看到了一个异常(使用net :: ERR_CONNECTION_REFUSED),我认为这不应该发生,因为它在try语句中.

1  try {
2    ws = new WebSocket('ws://'+ host + ':' + port + '/');
3  }
4  catch (err) {
5    console.log('This never prints');
6  }
7  ws.onerror = function (error) {
8    console.log(error);
9  };
Run Code Online (Sandbox Code Playgroud)

所以我的问题是为什么它没被抓住?

我最终想要的是在其他地方显示的错误消息,但是我无法捕捉它,第8行打印出一个"事件"对象,它没有提到net :: ERR_CONNECTION_REFUSED,所以我不知道如何获取错误消息.

javascript

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

Sublime Text 3中的自定义语法

我正在努力找出如何使用新的.sublime-syntax样式定义在Sublime Text 3中创建一个新的语法高亮(大多数先前的答案与旧方法有关).

从Sublime Text Build 3084开始,添加了一个新的语法定义格式,扩展名为.sublime-syntax.

我能找到:

但是我找不到最基本的信息,详细说明这些如何结合在一起!

我不是想创建一个主题,或者调整现有的语法定义.我只想为具有我计划用于我自己目的的扩展名的文件创建语法高亮显示.

  1. 在语法定义中,我必须指定一个范围(例如scope:source.c)但是该范围文件在哪里生效?或者更确切地说,我在哪里创建我的范围文件,以及如何命名它,以便它加载?
  2. 我如何知道我的语法文件及其使用的范围文件是否已成功加载和应用?
  3. 是否有任何编译或刷新步骤,或一切都自动重新加载?

谢谢.

sublimetext3

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

使用属性生成自定义setter

在我坚持使用对象数据库的实例的类中,我不得不这样做:

private string _name;
public string Name
    {
    get { return this._name; }
    set { _name = value; this.Save(); }
    }
Run Code Online (Sandbox Code Playgroud)

而我宁愿输入这个:

[PersistedProperty(Name)]
private string _name;
Run Code Online (Sandbox Code Playgroud)

其中PersistedProperty属性生成一个Getter和Setter,就像默认的[Property()]属性一样,除了我想在生成的Setter中添加一行代码.

有没有办法可以创建一个属性来做到这一点?希望,它适用于Intellisense.

默认的[Property()]属性是如何做的呢?如果我看到代码,我可以嫁接......

注意:我实际上是在Boo中这样做,但是我认为我会给c#代码,因为更多的人可能愿意回答这个问题,但是,如果有一个Boo特定的解决方案,我全都耳朵!

更新:

我的目标只是减少打字和杂乱.事实证明,最简单的方法是使用一个脚本,该脚本根据我的类中的标记生成部分类.

从标记(与部分类一起)自动生成源代码很容易,实际上看起来像是一种非常有前途的方法来解决我们通常尝试使用继承和泛型类型解决的一些问题.

.net c# attributes boo automatic-properties

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

.Net使用特殊文件夹表示法

我希望能够做到这样的事情:

IO.Directory.Exists("%USERPROFILE%")
Run Code Online (Sandbox Code Playgroud)

原因是我想指定我的应用程序将使用的一个目录,作为配置文件中的纯文本.在某些情况下,我希望它嵌套在用户配置文件下,在这种情况下配置文件将读取如下内容:

...
LocalDbDirectory = %USERPROFILE%\Application Data\My Toolkit\
...
Run Code Online (Sandbox Code Playgroud)

或者我可能希望它在网络位置,在这种情况下它会读取如下内容:

...
LocalDbDirectory = N:\Common\My Toolkit Databases\
...
Run Code Online (Sandbox Code Playgroud)

所以我需要能够使用IO.Directory.Exists(...)等效方法来解释速记符号.

有任何想法吗?

.net windows special-folders

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

SQLite:是否通过回滚事务撤消了pragma语句?

只是想知道如果包含在一个被回滚的事务中,是否可以撤消诸如foreign_keys = OFF和VACUUM之类的编译指示.

在线文档似乎没有涵盖这个......

sqlite transactions pragma

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

在 Jasmine 中使用 $q 的模拟 Angular 工厂

当然,以前有人问过这个问题,但我找不到。我需要模拟一个工厂,但模拟本身需要使用 $q,并且在注入()之后调用模块()时我最终陷入了鸡和蛋的情况。

我看了这个问题,它建议做一个 spyOn,它适用于服务,因为它是一个单例,但我在我的工厂返回的函数上调用new,每次都创建一个新实例,这样就行不通了......

var app = angular.module('app', []);

app.factory('MyDependencyFactory', function() {
  return function() {
    this.doPromise = function () {
      var defer = $q.defer();
      //obviously more complicated.
      defer.resolve();
      return defer.promise;   
    }
  }
});

app.factory('MyConsumingFactory', function(MyDependencyFactory) {
 return function() {
   var dependency = new MyDependencyFactory();
   this.result;

   this.doSomething = function () {
     dependency.doPromise().then(
       function (data) {
         this.result = data;
       },
       function (error) {
         console.log(error);
       }
       );
   }
  }
});
Run Code Online (Sandbox Code Playgroud)

茉莉花测试:

describe('MyConsumingFactory', function() {
  var MyConsumingFactory;

  beforeEach(function …
Run Code Online (Sandbox Code Playgroud)

javascript jasmine angularjs

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