小编Sin*_*dro的帖子

如何正确地打破承诺链?

基于这里的问题:jQuery链接和级联然后是什么时候和接受的答案.

我想在某个时刻打破承诺链,但还没有找到正确的方法.有多个 职位 有关这一点,但我还是输了.

从原始问题中获取示例代码:

Menus.getCantinas().then(function(cantinas){ // `then` is how we chain promises
    Menus.cantinas = cantinas;
    // if we need to aggregate more than one promise, we `$.when`
    return $.when(Menus.getMeals(cantinas), Menus.getSides(cantinas));
}).then(function(meals, sides){ // in jQuery `then` can take multiple arguments
    Menus.sides = sides; // we can fill closure arguments here
    Menus.meals = meals;
    return Menus.getAdditives(meals, sides); // again we chain
}).then(function(additives){
    Menus.additives = additives;
    return Menus; // we can also return non promises and chain …
Run Code Online (Sandbox Code Playgroud)

jquery break promise chain

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

如果从未进行关闭握手,WebSockets将不会在IE上关闭

我一直在用JavaScript实现WebSocket,但我遇到了一个问题:
我的Web应用程序所连接的端点在发送一个封闭的控制框架时没有将其发送回去。

这还不错,因为浏览器会在一段时间后关闭WebSocket连接。

但是需要注意的几件事是:

  • 浏览器只允许同时连接一定数量的WebSocket。

  • 刷新Web应用程序时,将创建一个新的WebSocket。

这会导致IE上的问题:
刷新Web应用程序超过6次时,无法建立WebSocket连接。

如果尚未完全关闭WebSocket,似乎IE不会“删除” WebSocket。奇怪的是,Web套接字的数量似乎从未因刷新或等待而减少。

仅通过关闭浏览器窗口或选项卡将WebSockets的数量重置为0。


我做了一些研究,这是我发现的:


浏览器仅支持同时连接特定数量的WebSocket。

IE支持6个websocket进行连接[链接]

Chrome支持连接255个websocket [link]

并且socket.onclose()不会在您执行操作时触发socket.close(),而是在端点以关闭消息进行响应时调用。 [链接]

IE等待15秒,以便端点发送关闭消息[link]

Chrome等待60秒钟才能收到响应消息[很抱歉,对此没有链接,通过测试发现了此消息]。

如果未收到响应消息,则浏览器将关闭WebSocket连接,并应发生TimeoutError。

如果我错了请指正我:)


我尝试过使用unbeforeload与端点的断开连接,希望浏览器在一段时间后关闭连接,但是没有运气。[链接]
也可能是IE无法在[link]unbeforeload函数内执行请求的原因。

题:

  1. 是否可以通过JavaScript重置浏览器中连接到端点的WebSocket的数量?
  2. 有没有一种方法可以立即从端点断开WebSocket而不完全关闭连接?
  3. 是唯一可行的方法来通知托管其端点的主机进行一些更改,以便他们发送关闭帧吗?
  4. 有什么我误解的东西,或者我可以尝试使其工作吗?

如果有人想了解更多关于WebSocket协议的信息,这是(我认为)很好的文档[link1] [link2]

更新:

只有刷新IE上的Web应用程序,WebSocket才会被销毁
如果您在Web应用程序中的页面之间导航,则会创建一个新的WebSocket,但最后一个WebSocket将被破坏。

javascript internet-explorer network-protocols websocket handshake

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

如何动态创建mongoose架构?

我有一个应用程序,使用mongodb和mongoose在node.js上工作.我的应用程序只是发送/删除/编辑表单数据,为此我有这样的猫鼬模型:

var mongoose = require('mongoose');

module.exports = mongoose.model('appForm', {
    User_id : {type: String},
    LogTime : {type: String},
    feeds : [   
    {
        Name: {type: String},
        Text : {type: String},
    }
    ]
});
Run Code Online (Sandbox Code Playgroud)

这工作得很好!

现在,我想在表单中添加一个函数,以便用户可以添加一个或多个字段来形成并在其中输入文本并发布.在客户端创建动态功能是没有问题的,但我知道我的mongoose.model必须正确构建.我的问题是:如何将该变量值(动态创建的表单数据名称及其文本)添加到mongoose模式?

我看到使用'strict:false'和'Schema.Types.Mixed'建议但我无法弄明白..我尝试过:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var feedSchema = new Schema({strict:false});

module.exports = mongoose.model('appForm', feedSchema);
Run Code Online (Sandbox Code Playgroud)

有小费吗?提前致谢!

mongoose mongodb node.js

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

如何在node.js中生成视频缩略图?

我正在使用node.js构建一个应用程序,我成功上传了视频,但我需要为它生成一个视频缩略图,目前我使用node exec来执行ffmpeg的系统命令来制作缩略图

   exec("C:/ffmpeg/bin/ffmpeg -i Video/" + Name  + " -ss 00:01:00.00 -r 1 -an -vframes 1 -f mjpeg Video/" + Name  + ".jpg")
Run Code Online (Sandbox Code Playgroud)

此代码来自http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-resumable-video-uploade-in-node-js/上的教程

上面的代码确实生成了一个jpg文件,但它不是缩略图而是视频屏幕截图,我想知道是否有其他方法来生成视频缩略图,或者如何执行ffmpeg命令来制作真正的thumbanil(调整大小),我更喜欢png文件,请帮忙!!!

video ffmpeg thumbnails node.js

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

NestJS - 如何使用装饰器创建嵌套模式

假设我想用猫鼬构建以下架构:

const userSchema = new Schema({
  name: {
    firstName: String,
    lastName: String
  }
})
Run Code Online (Sandbox Code Playgroud)

如何使用 NestJS 装饰器 ( @Schema()& @Prop()) 来实现?

我尝试这种方法,但没有运气:

@Schema()
class Name {
  @Prop()
  firstName: string;

  @Prop()
  lastName: string;
}

@Schema()
class User extends Document {
  @Prop({ type: Name })
  name: Name;
}
Run Code Online (Sandbox Code Playgroud)

我也不想使用该raw()方法。

mongoose mongodb mongoose-schema nestjs

9
推荐指数
3
解决办法
7741
查看次数

如何在角货币管中隐藏货币符号

我正在尝试使用 Angularcurrency管道,我想从格式化的数字中一起删除货币符号,但似乎没有选择这样做。那么有没有什么简单的方法可以在不为其编写自定义管道的情况下实现这一目标?

number-formatting angular-pipe currency-pipe angular

6
推荐指数
2
解决办法
8402
查看次数

如何轻松切换到角度2

所以不久前我学习了angularJ,现在我才刚刚开始适应它。但是角度2即将到来,我有两个主要问题:

1)我应该停止学习和使用角度1,而是开始学习角度2吗?

我对角度2有所了解,而且几乎所有事情都已改变。所以

2)我从角度1知道在学习角度2有什么好处吗?还是我应该像学习全新框架那样学习角度2?有什么好的方法或指南可以将角度1切换为2?

预先感谢您的回答。

angularjs angular

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