Tag: javascript

用webpack循环导入返回空对象

目前遇到这个确切的问题: FileA: var b = require file B var c = require file C FileB: var a = require file A FileC: var a = require file A 当我运行代码时,在文件C中出现错误: A.doSomething is not a function 在那里扔了一个debugging器,看到A是一个空的对象。 真奇怪的是我只在文件C中出现错误,而不是在文件B中出现错误。

了解延期执行链的语法

我正在学习JavaScript,真正学习JavaScript。 我来自PHP背景,所以一些JavaScript概念对我来说还是新的,特别是asynchronous编程。 这个问题可能已经被回答了很多次,但是我一直没有find答案。 这可能是因为除了举个例子之外,我甚至不知道怎么去问这个问题。 所以这里是: 当从npm使用延迟包时,我看到下面的例子: delayedAdd(2, 3)(function (result) { return result * result })(function (result) { console.log(result); // 25 }); 他们把这称为链接,它实际上工作,因为我目前正在使用这个代码来检查一个承诺是否解决或被拒绝。 尽pipe他们称之为链接,但它让我想起了像Swift那样的闭包。 我不明白这是什么types的链接,因为我们有一个函数调用,然后紧接在括号后面的一个匿名函数。 所以我想我有两个问题。 这是什么模式? 它是如何工作的? 这可能是一个加载的问题,但我想知道如何做的事情,所以当有人问我这个问题时,我可以给他们一个详细的解释。 这是delayedAdd函数: var delayedAdd = delay(function (a, b) { return a + b; }, 100); 它使用以下function: var delay = function (fn, timeout) { return function () { var […]

Node.JS:如何将variables传递给asynchronouscallback?

我确定我的问题是基于对node.js中asynchronous编程的理解不足,但是在这里。 例如:我有一个我想要抓取的链接列表。 当每个asynchronous请求返回时,我想知道它是哪个URL。 但是,可能是因为竞争条件,每个请求返回与URL设置为列表中的最后一个值。 var links = ['http://google.com', 'http://yahoo.com']; for (link in links) { var url = links[link]; require('request')(url, function() { console.log(url); }); } 预期产出: http://google.com http://yahoo.com 实际产出: http://yahoo.com http://yahoo.com 所以我的问题是: 如何将URL(通过值)传递给callback函数? 要么 链接HTTP请求的正确方法是什么,使它们顺序运行? 要么 还有什么我失踪? PS:对于1.我不想要一个解决scheme,检查callback的参数,而是一个callback的一般方式知道variables'从上面'。

在node.js中使用Async瀑布

我有2个function,我正在asynchronous运行。 我想用瀑布模型来写。 事情是,我不知道如何.. 这是我的代码: var fs = require('fs'); function updateJson(ticker, value) { //var stocksJson = JSON.parse(fs.readFileSync("stocktest.json")); fs.readFile('stocktest.json', function(error, file) { var stocksJson = JSON.parse(file); if (stocksJson[ticker]!=null) { console.log(ticker+" price : " + stocksJson[ticker].price); console.log("changing the value…") stocksJson[ticker].price = value; console.log("Price after the change has been made — " + stocksJson[ticker].price); console.log("printing the the Json.stringify") console.log(JSON.stringify(stocksJson, […]

为什么node.js不具有本地DOM?

当我发现NodeJS是build立在V8 Javascript引擎上的时候,我认为“好的,网页抓取将会更容易,因为页面将会像浏览器一样呈现,其中支持XPath的”原生“DOM以及页面中的任何AJAX调用执行“。 为什么当它使用与Chrome相同的JS引擎时,它不具有本地DOM? 同样,为什么它没有在检索页面中运行JS的模式? 我不理解JavaScript引擎与Web浏览器中的引擎? 🙂 非常感谢!

为什么node.js是asynchronous的?

没有人真正问过这个问题(从我提出的所有“build议”中,在我问到这里之前,也从中寻找)。 那么为什么node.js是asynchronous的呢? 从我在一些研究中推论出来的: 像PHP和Python这样的语言是脚本语言(我可能是错误的脚本语言的实际语言),而JavaScript不是。 (我想这是源于JS不编译的事实?) Node.js在单线程上运行,而脚本语言使用multithreading。 asynchronous意味着无状态,连接是持久的,而同步是(几乎)相反的。 也许答案是在上面的某个地方find的,但是我还不确定。 我的第二个也是最后一个与这个话题有关的问题是: JavaScript可以变成同步语言吗? PS。 我知道你们中的一些人会问“你为什么要让JS同步?” 在你的答案中,但事实是,我没有。 我只是问这些types的问题,因为我确信有更多的人在那里,而不仅仅是我自己曾经想过这样的问题。

在Node.js中复制到剪贴板?

有没有办法可以在Node.js中复制到剪贴板? 任何模块或想法是如此之久? 我在桌面应用程序上使用Node.js。 希望这清楚了为什么我希望它能够实现这一点。

CoffeeScript模块模式

在回顾Github上CoffeeScript的源代码的同时 ,我注意到大部分(如果不是全部)模块定义如下: (function() { … }).call(this); 这个模式看起来像是将整个模块封装在一个匿名函数中并自行调用。 这种方法的优点和缺点是什么? 还有其他的方法来实现相同的目标吗?

Node.js在Sublime Text 2中构build系统

我开始学习JavaScript。 在这样做的时候,我厌倦了将我的JavaScript代码embedded到HTML文档中,以便在浏览器中运行它。 我认为只要在Sublime的控制台中运行我的脚本就好了,所以我不必离开编辑器。 因此,我试图创build一个JavaScript构build系统,因为崇高不附带一个。 我的想法是使用Node.js作为JavaScript解释器。 我将它安装在Linux Mint的软件包pipe理器中。 据我可以说,它工作得很好。 假设我有一个包含以下JavaScript代码的文件test.js : console.log(“Hello World”); 当我跑步 nodejs /path/to/test.js 在我的控制台中,我得到: 你好,世界 但是,我不认为这与Sublime合作。 我通过点击Tools / Build System / New Build System来创build一个新的Build系统 。 然后我input以下几行: { “cmd”:[“nodejs”,“$ file”] } 据我所知,这一行是以下命令的JSON表示: nodejs /path/to/current/file.ext 就像我说的,如果我在控制台上手动运行它,它工作得很好。 如果我按了F7中的Sublime,这是Build的快捷方式,Sublime的控制台显示出来。 这是空的。 还有一件奇怪的事情 即使Sublime控制台的(不存在的)输出表明构build系统没有被configuration为正确的使用Node.js,但是当我不小心试图运行非JS文件,比如Node.sublime-build文件。 这是Sublime控制台中显示的输出: /home/baerenfaenger/.config/sublime-text-2/Packages/User/Node.sublime-build:2 “cmd”:[“nodejs”,“$ file”] ^ module.js:434 var compiledWrapper = runInThisContext(wrapper,filename,true); ^ SyntaxError:意外的标记: 在Module._compile(module.js:434:25) 在Object..js(module.js:464:10) 在Module.load(module.js:353:32) […]

如何在JavaScript中将Blob转换为文件

我需要上传一个映像到NodeJS服务器到某个目录。 我正在使用connect-busboy节点模块。 我有我使用以下代码转换为blob图像的dataURL : dataURLToBlob: function(dataURL) { var BASE64_MARKER = ';base64,'; if (dataURL.indexOf(BASE64_MARKER) == -1) { var parts = dataURL.split(','); var contentType = parts[0].split(':')[1]; var raw = decodeURIComponent(parts[1]); return new Blob([raw], {type: contentType}); } var parts = dataURL.split(BASE64_MARKER); var contentType = parts[0].split(':')[1]; var raw = window.atob(parts[1]); var rawLength = raw.length; var uInt8Array = new Uint8Array(rawLength); […]