Articles of settimeout

在服务运行之前,Node.js脚本应该等待

我有一个node.js脚本,在启动时启动。 它使用node-redis为Redis创build一个客户端,但在启动时,Redis尚未准备好,而节点已经启动。 所以,它会发出exception并停止执行。 第一部分是这样的: var redis = require("redis"), jobs = require("jobs"), client = redis.createClient(), runner = new jobs(client, "job-queue",{}); // Continue using runner 第3行( redis.createClient() )引发exception。 我的解决scheme是做一个无限循环,在try / catch中创build客户端,并在成功时停止循环: var redis = require("redis"), jobs = require("jobs"), queue = 'job-queue', client = null, runner = null, createClient = function (redis, jobs, queue) { try { client […]

运行setTimeout并显示loginterminal

我试图在terminal中使用下面的代码显示日志,但它只显示一次,代码中的错误是什么? 我用下面的代码创build了一个文件time.js setTimeout(function() { console.log("setTimeout: It's been one second!"); }, 1000); 并像这样在terminal中运行代码 node time.js 输出如下 Apples-MacBook-Pro:s3 apple$ node time.js setTimeout: It's been one second! Apples-MacBook-Pro:s3 apple$ 而我期待setTimeout:这是一秒钟! logging每一分钟

在Node.js中,setTimeout不能与Monq一起工作

在尝试使用setTimeout对monq worker执行速率限制时,为什么worker不被限制? worker在执行setTimeout()之前不会等待10秒钟。 为什么这个,我们如何才能把它延迟到foo()的调用? var monq = require('monq') var client = monq('localhost/mydb') var worker = client.worker(['general']) worker.register({ test: function(params, callback) { try { setTimeout(foo(params, callback), 10000) } catch(err) { callback(err) } } }) foo = function(params, callback) { console.log('Hello world') callback() }

Javascript代码不工作在节点?

我写了一个代码来解决setTimeout()函数中的this关键字问题。 并试图在节点运行它,并显示抛出错误; 找不到模块错误。 然后我试图在浏览器中运行它,它工作。 我的意思是如何知道什么时候在nodejs中testing我们的代码。 这是我的代码 function person () { var firstName ; var _this_ = this; return { saveContext: function(context) { _this_ = context; }, setName: function(name) { _this_.firstName = name; }, getName: function() { console.log(_this_.firstName); } }; } var employee1 = new person(); employee1.saveContext(employee1); employee1.setName('Steve'); employee1.getName(); setTimeout(employee1.getName, 1000);

如何在NodeJS中创build一个无限循环

我已经看到了关于无限循环JS的一堆答案,我认为这将有助于我的代码,但似乎并没有正常工作。 我有这个: var i = 0 while (true) { setTimeout(() => { i ++ console.log('Infinite Loop Test n:', i); }, 2000) } 我们的目标是在无限循环内每2秒钟得到一次日志,但是我似乎无法得到任何回报……我错在哪里? 在此先感谢您的帮助像往常一样!

正确传递参数给setTimeout

我正在研究一个Node.js项目,并且我正在用一个setTimeout函数来封装一个Promise函数。 我原来的Promisefunction: 我想在setTimeout()调用中包装这个函数,但是在Promise对象中传递时遇到了问题。 我需要在setTimeout()函数内部提供的Promise对象和数据对象,但是当我将它们传递给setTimeout()作为参数时,我仍然得到以下错误: TypeError:无法读取未定义的属性'then' 我的代码: return Promise.props(data).then(function (data) { data.companies = data.order && data.order.companies; if (!data.companies) { data.companies = {}; data.companies[data.company.id] = data.company; } if (data.order) { if (data.order.contactentry) { data.order.pointofcontact = data.order.contactentry + ' ' + phone(data.order.contactentryphone); } else if (data.order.borrowername) { data.order.pointofcontact = data.order.borrowername + ' ' + phone(data.order.borrowerphone); } else if […]

非阻塞setTimeout

是否有可能在NodeJS实现一个setTimeout的版本,不会阻止进程从最后一行代码完成后退出? 即只有当进程仍在运行时才会触发callback函数的条件setTimeout 。 实际例子: 在实现一个通过设置一些超时来初始化自己的库的时候,你会希望一旦这个应用完成,你不需要明确地调用这个库来清除所有超时,并且不pipe这个应用是closures的。

性能问题之前有多less个并发setTimeout?

我有一个node.js应用程序,在任何给定的时间运行10k-100k并发setTimeouts。 (他们都是5分钟的时间。)callback是相当微不足道的,只是在redis中的HDECRBY。 我还没有遇到任何性能问题,即使在t2.micro的情况下。 我知道,如果callback函数无法像setTimeout(显然)那样快地执行,我会遇到问题,但是本身具有大量setTimeouts的问题呢? 比如,如果我把这个比例扩展到100万个并发数据库,​​我是否会遇到内存瓶颈? 千万?

当exception在不同的上下文中抛出时,setTimeout永远不会调用

使用node.js,当我运行程序 setTimeout(() => console.log("Timed out"), 0); console.log("finishing"); 我懂了 finishing Timed out 但是当我在“完成”之前添加一个投掷 setTimeout(() => console.log("Timed out"), 0); throw new Error(); console.log("finishing"); 我懂了 throw new Error(); ^ Error at Object.<anonymous> …(stack trace here)… 而且我没有看到任何提及的“超时”。 这是为什么? 即使初始上下文会抛出,一旦堆栈被释放,我预计我传递给setTimeout的callback仍然会运行。 有没有捕获exception会导致所有的超时取消? 这个functionlogging在某个地方吗? 如果我有多个超时,是否有一种方法可以确保所有其他超时都能继续运行,即使其中一个超时也能继续运行?

JavaScript:浏览器支持vs纯语言支持:setTimeout,setInterval

JavaScript只是一种语言,它的一个实现是V8引擎。 它用于chrome和node.js。 DOM支持不是JavaScript语言function,它是一个浏览器function(纯JS中没有DOM )。 同样的, XMLHttpRequest不是JavaScript的一部分。 这是一个JS语言的浏览器插件。 我的问题涉及菲利普·罗伯茨(Philip Roberts)的欧盟对话谈话,他指出, 其中setTimeout不在V8中 。 我想他可能是错的,但我不确定,这是我的问题。 当我打开node.js(基于V8的)控制台并键入以下内容: > Promise [Function: Promise] > setTimeout [Function] > setInterval [Function] > XMLHttpRequest ReferenceError: XMLHttpRequest is not defined at repl:1:1 at REPLServer.defaultEval (repl.js:262:27) at bound (domain.js:287:14) at REPLServer.runBound [as eval] (domain.js:300:12) at REPLServer.<anonymous> (repl.js:431:12) at emitOne (events.js:82:20) at REPLServer.emit (events.js:169:7) at REPLServer.Interface._onLine (readline.js:211:10) […]