Tag: asynchronous

节点脚本等待asynchronouscallback

我有一个简单的js文件,我正在执行node script.js ,做一些asynchronous的东西。 但是,脚本在callback执行之前退出。 我读过这个节点,“等到回退在退出之前运行”。 这似乎并不是这样 – 我做错了什么? // script.js asyncOp(function(err, result) { console.log('callback'); // <- this doesn't happen } 编辑:这是一个具体的例子。 这是整个脚本 // script.js var User = require('../models/user'); // a mongoose model User.create({name: "bob"}, function(err, user) { console.log('callback'); // <- this doesn't happen }; 我使用node script.js执行它,但在“callback”打印之前退出

如何在node.js中创build可中断的循环

免责声明:我是一个Node.js新手,下面的描述可能会很长… 我目前正试图教自己的Node.js一个小项目,我后。 项目的想法如下:RaspberryPI运行一个Node.js应用程序,它允许我控制RGB LED灯条的颜色。 应用程序应该能够设置一个静态颜色,也可以运行颜色平滑的颜色轮。 我的想法是现在创build几个Node.js脚本: 执行客户端通信的“控制器”,设置静态颜色或能够启动色轮 “客户端脚本”,每个运行一个色轮。 他们中至多有一个是“活着的”,由“控制者”启动/停止, 我已经能够创build一个脚本来分叉另一个脚本,并能够使用child.send来停止脚本,如下所示: controller.js var fork = require('child_process').fork, test2 = fork(__dirname + '/test2.js'); setTimeout(function() { test2.send({func: 'quit'}); }, 5000); 这分叉了test2.js脚本,并在5秒钟之后发送退出test2.js的quit消息。 test2.js function runLoop() { console.log("Hello"); setTimeout(runLoop, 1000); } process.on('message', function(m) { if (m.func === 'quit') { process.exit(0); } }); setTimeout(runLoop, 1000); 这个“客户端脚本”每秒打印“Hello”,直到控制器发送quit消息。 这工作得很好 – 5秒钟后脚本完成优雅。 我的问题是现在:如果我实现了一个色轮,我需要一个可能无限循环,改变LED灯带的颜色。 上面的(当然更短的定时器值 – […]

使用摩卡的Node-Redis Asynchrounoustesting

我有一个用Node.JS编写的简单asynchronous代码,它向Redis SET添加一个string。 这里是代码,它保存在一个名为redis_ops.js的文件中 var redis = require('redis'); exports.addUser= function(){ var client = redis.createClient(); client.on("error",function(err){ console.log('Error'+ err); }); client.select(1); client.sadd("users","naveen",function(err,reply){ if(err) throw err; return reply; }); console.log("at the end of the adduser function") } 由于client.sadd是asynchronous的,因此包含client.sadd的函数在client.sdd完成之前返回。 这是使用摩卡书写的testing var assert = require("assert"); var core = require('./redis_ops.js'); describe('COREAPI', function(){ describe('addUser', function(){ it('should return 1 if the user is added […]

Node.js – 为什么我的一些callback不是asynchronous执行的?

Noob关于使用callback作为控制stream模式与Node和http类的问题。 根据我对事件循环的理解,所有的代码都是阻塞的,I / O是非阻塞的,使用callback函数,下面是一个简单的http服务器和一个伪rest函数: // Require var http = require("http"); // Class function REST() {}; // Methods REST.prototype.resolve = function(request,response,callback) { // Pseudo rest function function callREST(request, callback) { if (request.url == '/test/slow') { setTimeout(function(){callback('time is 30 seconds')},30000); } else if (request.url == '/test/foo') { callback('bar'); } } // Call pseudo rest callREST(request, callback); } […]

Dart在NodeJS中基于未来的API

在NodeJS中有Dart的Future特性? 如果是,如何使用它? 谢谢。

meteor计算很长

我了解到,在Node.js中,您可以在长时间的计算之间进行操作,以防止服务器被阻塞。 你怎么在meteor上做到这一点? 在客户端也有这样的技术吗? 我是新来的网页开发,简单的例子将不胜感激。

JavaScript(asynchronous)如何确定在继续之前要“等待”什么?

最近我正在使用JavaScript,我试图弄清楚解释器是如何决定何时“等待”以及何时asynchronous移动到下一行代码的。 以这两个代码示例。 阅读我的意见,我的困惑。 1: function doAThing(thing, callback) { var someBoolean; if ( !thing ) { someBoolean = true; } else { someBoolean = false; } // Calling the callback function only happens *after* the above if statement, // meaning the interpreter waits instead of just calling it immediately? callback(someBoolean); } 2: function doOtherThing(thing, callback) { […]

pipe理node.js中基于命令的TCP套接字API的连接

我构build了一个基于expresss.js的RESTful API,通过使用JSON的TCP套接字与远程服务器进行通信。 请求的URL被转换成适当的JSON消息,新的TCP套接字打开并且发送消息。 然后,当接收到来自同一连接的消息时,事件被触发,JSON回复将被计算,并且由于GET请求返回新的JSON消息。 可能的path: asynchronous(当前正在使用) – 为每个请求打开到服务器的连接。 同步 – 创build一个包含所有请求的队列,并等待响应,阻止代码。 跟踪 – 一次发送所有请求,并asynchronous收到答案。 在请求上使用跟踪者ID来将每个请求与其答案关联起来。 什么是最好的方向去? 有没有什么共同的模式来解决这种应用?

在脚本中阻塞节点

我正在使用Node.js编写在服务器上运行的系统脚本。 由于Node的asynchronous特性,在数据库调用有机会完成之前我的脚本正在退出,而且没有任何数据写入数据库。 我使用Mongoose作为ORM并与MongoDB交谈,如果这有什么区别的话。 Node.js为此提供了SYNCHRONOUS方法调用,例如: https : //nodejs.org/api/child_process.html 我想我的问题是: 1)mongoose是否提供阻止的方法,这样我的脚本过程就可以等待数据库调用返回? 2)如果不是,除了类似的东西外,还有其他的方法我应该考虑: (function wait () { if (!SOME_EXIT_CONDITION) setTimeout(wait, 1000); })(); 3)节点不是编写脚本的最佳工具吗? 我喜欢Web应用程序开发的节点,并且可以编写嵌套的callback函数或整天使用promise。 但是作为一种脚本语言呢? 编辑———————————————– 以下是脚本的一个简单示例,以更清晰地说明情况: #!/usr/bin/env node # Please note the above that this is a bash script var schema = mongoose.Schema({ // … attributes … }); var model = new (mongoose.model('ModelObject'))(); model['attribute'] = 42; console.log('This […]

Node.jsasynchronous并行TypeError:任务不是一个函数

我正在使用asynchronous模块来执行并行任务。 基本上我有两个不同的文件,dashboard.js和Run.js。 Dashboard.js module.exports = { func1 : function(){ console.log(“Funtion one”); }, func2 : function(){ console.log(“Funtion two”); } } Run.js var dashboard = require('dashboard.js'); var async = require('async'); async.parallel([dashboard.func1, dashboard.func2],function(err){ if(err)throws err; console.log(“ All function executed”); }); 我期待func1和func2并行执行,但是抛出错误 TypeError: task is not a function at C:\Users\..\java\realtime-preview\node_modules\async\lib\async.js:718:13 at async.forEachOf.async.eachOf (C:\Users\..\java\realtime-preview\node_modules\async\lib\async.js:233:13) at _parallel (C:\Users\\java\realtime-preview\node_modules\async\lib\async.js:717:9) 为什么我不能使用dashboard.func1,dashboard.func2甚至dashboard.func1是函数?