在我重新进入JavaScript(和相关)之前,我已经完成了很多ActionScript 3,并且他们有一个Dictionary对象,它具有弱键,就像即将发布的WeakMap一样; 但AS3版本仍然像常规通用对象一样可枚举,而WeakMap特别没有.keys()
或.values()
.
AS3版本允许我们安装一些非常有趣和有用的构造,但我觉得JS版本有些限制.这是为什么?
如果Flash VM可以做到这一点,那么是什么阻止浏览器做同样的事情呢?我读到了它是如何"非确定性"的,但这有点恰到好处?
我使用Vagrant生成一个标准的"exact32"框并使用Chef配置它,这样我就可以在Windows机器上测试我的Node.js代码了.这很好用.
我也有这个bash命令,所以它自动安装我的npm模块:
bash "install npm modules" do
code <<-EOH
su -l vagrant -c "cd /vagrant && npm install"
EOH
end
Run Code Online (Sandbox Code Playgroud)
这也可以正常工作,除非我成功完成后才会看到控制台输出.但我希望看到它,以便我们可以直观地监控正在发生的事情.这不是npm特有的.
我看到这个类似的问题没有具体答案:Vagrant - 如何将Chef的命令输出打印到stdout?
我尝试指定标志,但我是一个糟糕的linux/ruby n00b并且根本没有创建错误或输出,所以请使用您的解决方案示例编辑我的代码段.
我想使用PostgreSQL窗口功能,如rank()
和dense_rank
在需要在Django做一些查询.我有它在原始SQL中工作,但我不知道如何在ORM中这样做.
简化它看起来像这样:
SELECT
id,
user_id,
score,
RANK() OVER(ORDER BY score DESC) AS rank
FROM
game_score
WHERE
...
Run Code Online (Sandbox Code Playgroud)
你会如何在ORM中做到这一点?
在某些时候,我可能还需要添加分区:|
(我们在Python 3上使用Django 1.9并且已经依赖于django.contrib.postgres功能)
我有本地文件路径(在node.js中),我需要将它们转换为file://
URL.
我现在正在查看https://en.wikipedia.org/wiki/File_URI_scheme,我觉得这必须是一个已解决的问题,并且有人必须有一个片段或npm模块来执行此操作.
但后来我尝试搜索npm这个,但是我得到了太多的瑕疵,这是不好笑的(文件,网址和路径是像所有包中的搜索命中:)与谷歌和SO相同.
我可以做这种天真的做法
site = path.resolve(site);
if (path.sep === '\\') {
site = site.split(path.sep).join('/');
}
if (!/^file:\/\//g.test(site)) {
site = 'file:///' + site;
}
Run Code Online (Sandbox Code Playgroud)
但我很确定这不是要走的路.
如何清理WebGL上下文程序并从GPU和dom-element卸载程序,缓冲区和所有内容?
我想确保我们不乱扔垃圾.
此外,它会是很好,如果可以重新使用画布(我不知道这是否会是2d
或webgl
上下文).
我有一些JavaScript代码从任意编译到JS语言编译到commonJS模块,我想使用sourcemaps调试浏览器化的代码.
所以我的文件已经//# sourceMappingURL=index.js.map
有了,我希望browserify能够读取并转换它们,这样我就可以使用我原来的非JS语言进行调试.
我需要另一个变换吗?
我尝试使用browserify的调试标志,然后它确实生成了一个源图,但是它用于中间JS文件,而不是原始的非JS文件.我甚至看到原始//# sourceMappingURL
语句在包中挥之不去,而我的浏览器调试器并不喜欢它.
这有可能吗?
我看到这一点:使用browserify后保留原始的打字稿源图但它不起作用.
我在node.js中有一堆(子)进程需要传输大量数据.
当我阅读手册时,它说它们之间的stdio和ipc接口是阻塞的,所以不会这样做.
我正在研究使用文件描述符,但我找不到从它们流式传输的方法(请参阅我的其他更具体的问题如何在节点中流式传输文件描述符?)
我想我可能会使用网络套接字,但我担心这会产生不必要的开销.
我也看到了这一点,但它不一样(并且没有答案:如何在Node.js中以非阻塞方式从子进程向父进程发送大量数据?)
泛型类型代码的类型参数是否有命名约定?
我现在正在做一些TypeScript,但它具有与C#,Java,AS3等相同类型的参数化.
我看到最常用的T
,als in:
interface Container<T> {
getContent(): List<T>;
}
Run Code Online (Sandbox Code Playgroud)
但是如果你需要超过1种类型怎么办?我看到单个字母,通常是T,U和V.有时K,V用于映射的键和值.
当然必须有一个最好的做法吗?
在fs.createReadStream()
与fs.createWriteStream()
仅支持文件的路径,但我需要从一个文件描述符(传递到/从一个子进程),读(或写).
注意我需要Streams,所以fs.open/fs.read/fs.write
还不够.
使用spawn()创建子进程时,可以通过options.stdio
参数传递选项以创建多个流.在标准3(stdin,stdout,stderr)之后,您可以传递额外的流和管道,这将是子进程中的文件描述符.然后你可以使用fs.createRead/WriteStream来访问它们.
请参见http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options
var opts = {
stdio: [process.stdin, process.stdout, process.stderr, 'pipe']
};
var child = child_process.spawn('node', ['./child.js'], opts);
Run Code Online (Sandbox Code Playgroud)
但是文档并不清楚这些管道阻塞的位置.我知道stdin/stdout/stderr正在阻塞,但那是什么'pipe'
?
他们在一个部分说:
"请注意,父和子上的send()方法是同步的 - 不建议发送大块数据(可以使用管道,参见child_process.spawn"
但在其他地方他们说:
process.stder和process.stdout与Node中的其他流不同,对它们的写入通常是阻塞的.
Run Code Online (Sandbox Code Playgroud)They are blocking in the case that they refer to regular files or TTY file descriptors. In the case they refer to pipes: They are blocking in Linux/Unix. They are non-blocking like other streams in Windows.
任何人都可以澄清一下吗?管道是否在Linux上阻塞?
我需要传输大量数据而不会阻止我的工作进程.
有关:
javascript ×4
node.js ×4
stream ×3
bash ×1
browserify ×1
c# ×1
canvas ×1
chef-infra ×1
django ×1
ecmascript-6 ×1
enumerable ×1
generics ×1
nonblocking ×1
npm ×1
orm ×1
pipe ×1
postgresql ×1
source-maps ×1
sql ×1
stdout ×1
typescript ×1
url ×1
vagrant ×1
weakmap ×1
webgl ×1