Tag: callback

如何使用callback作为参数在node.js的API请求?

我想要使​​用方法getPlayers(callback),它定义为: getPlayers(callback) callback – 必需。 用玩家的对象来调用玩家 – 一个包含连接到服务器的所有玩家的对象,其名称作为密钥 检索连接到服务器的所有播放器。 以下是完成模块的链接以获取更多详细信息: https://www.npmjs.com/package/hltv-livescore#getplayerscallback

等待2个允诺在一个函数中同时使用

首先:我希望我的问题还没有被问及其他地方的回答…我一直在寻找和networking上,我似乎无法find任何东西(也许这是不可能的)。 基本上,我试图build立一个数据库(在我的情况下与蒙戈)从webAPI(密码交换Kraken)获取信息。 目标是用我从请求中得到的各种对象构build我的集合。 这里的gitub回购: MongoNode 这里是当前的代码(我现在使用简单的callback和请求:链接一切): // External Modules var request = require('request'); var yargs = require('yargs'); var _ = require('underscore'); var async = require('async'); var MongoClient = require('mongodb').MongoClient, co = require('co'), assert = require('assert'); // Own Modules // Variables var tickerArr= [] // Generator function for connection co(function*() { // Connection URL var url […]

NodeJS然后/捕获一个函数似乎是捕获function外的代码

我试图构造这个代码,所以我可以从多个地方调用getStudent。 我正在尝试编写一些JSON例程。 我正在尝试第一个callback模式。 这不是那么多的错误让我感到不安,而是错误被getStudent中的一个捕获。 顺便说一句,我想出了错误是做状态(200),而不是状态(0)。 我应该如何重组这样的渔获量,以便它们不影响主代码? 还是我完全滥用callback概念? 看起来像“then / catch”是处理与mssqlasynchronous的正确方法。 var express = require('express'); var app = express(); // config for your database var config = { user: 'ReadOnlyUser1', password: 'whatever', server: 'localhost\\SQLEXPRESS', database: 'StudentsOld' }; var lookupStudentId = 31; const sql = require('mssql'); var connPool = new sql.ConnectionPool(config); function getStudent(studentId, callback) { console.log("Starting getStudent"); […]

承诺超时后停止执行

我一直在使用Q模块来实现我正在进行的一个项目的承诺。 我正在使用静态方法Q.fncall()创build一个node.js样式函数(基于callbackerr,结果)的承诺。 问题是我需要在一定的时间内停止执行这个函数,所以我使用了Q模块的“超时”function。 所以,经过了一段时间后,done函数的“错误”callback就会执行,让我来处理超时,但是函数本身不断的执行,直到它到达最后的callback,即使处理程序不再监听。 问题是:是否有任何方法来执行超时后停止执行一个函数? 我知道我可以在超时处理程序上设置一个variables,并在超时结束的时候继续检查函数,但是我希望能有一个更清晰的方法来实现。 代码如下: Q.nfcall(test1, id) .timeout(1000) .done( function (value) { console.log("SUCCESS: " + value); }, function (reason) { console.log("ERROR " + reason); }, function (progress) { console.log("PROGRESS " + progress); } ); 和test1函数: function test1(id,callback){ db_rw_pool.query("SELECT * FROM table WHERE id=?",[id], function(err,result) { if(err){ callback(err,null); } else { setTimeout(function(){ console.log("I DON'T […]

为什么使用JavaScriptcallback,当清洁语法可用?

我正在学习使用Node。 到现在为止还挺好。 但是,对于JavasSript来说,这是一个相当新颖的东西,当清晰,更具可读性(至less对我来说)的语法可用时,我并没有真正使用callback函数。 下面是一个示例代码,使我的观点更清晰: 随着callback: exports.create = function(req, res){ new Todo({ content : req.body.content, updated_at : Date.now() }).save(function(err, todo, count){ res.redirect('/'); }); }; 没有callback: exports.create = function(req, res){ newtodo = new Todo({ content : req.body.content, updated_at : Date.now() }); newtodo.save(); res.redirect('/'); }; 这两个代码将保存新的待办事项和redirect。 我倾向于第二个,我发现更容易阅读,但也许有一个区别,我不明白。 有区别吗?

Node.js返回,callback和源代码执行stream程 – 运行时

我对node.js的工作方式感到困惑,我正在谈论callback,返回以及源代码的执行方式。 我使用的是sails.js,但我不认为它是链接的,我认为这更多的是JS的工作方式。 源代码: module.exports = function (req, res, callback) { if (req.session.authenticated) { // Accept user authentication. return callback(); } else { // Not authenticated. Try auto authentication. if(validator.check([validator.rulesHardwareId(req.param('hardwareId'))])){ Device.findOne({hardwareId: req.param('hardwareId')}, function(err, device){ if(err){ return res.json({message: "You are not permitted to perform this action. You have to connect to the platform before. [Wrong hardwareId or […]

javascript(node.js)| 在callback函数的范围内使用外部参数

我怎样才能将idvariables传递给API resquestscallback函数,因为函数只有三个固定的参数? 我的意思是我不能这样做: var id = 6; request(url, function(err, resp, body, id) { //using here the returned body and the id too.. } 而且不会让我再添加一个论点,导致真正的function request(url, function(err, resp, body){} 问候,

Socket.IO:如何在同一台服务器上的socket.on()事件之间进行通信/交换数据?

我有一行代码写在一个socket.on事件,这是从客户端调用来获取数据使用callback机制。 是否有可能在两个socket.on事件之间进行通信,并在同一服务器和同一文件中使用callback来交换数据? 对于。 例如,客户端和服务器之间的正常stream量: socket.emit('init',data,function(callbackFromServer)) //from client | ^ | | server respond through callback to client V | socket.on('init',function(data, callback){/*….*/}); // to server 我想实现相同的情况,但在两个socket.on()事件之间的服务器本身之间交换数据。 即: client | ^ V | socket.on('someEvent',function(data,callback1){/*….*/}) // some.js | ^ V | // <– I want to achieve this socket.on('init',function(data,callback2){/*…..*/}) // some.js 有没有可能通过任何方法来实现这一点?

关于nodejscallback执行顺序问题的一个例子,我不明白

我写了一个示例代码如下。 //test.js var fs = require('fs'); fs.readdir(__dirname+'/app/img/', function(err, files) { console.log(files); }); someFunction(function(output){ console.log(output); }); console.log('This is the final console call'); function someFunction(callback) { callback(' I am some funciton. '); } 然后,运行'node test.js'后,得到如下结果。 $ node test2.js I am some funciton. This is the final console call [ 'photo1', 'photo2' ] someFunction()是我自己创build的,用于模拟fs.readdir()中的callback函数。 而作为我原来的假设,结果应该是 [ 'photo1', 'photo2' […]

了解node.js的asynchronous性 – for循环与嵌套的callback

我是nodejs的新手,并试图理解它的asynchronous思想。 在下面的代码片段中,我试图从mongodb数据库中随机获取两个文档。 它工作正常,但由于嵌套的callback函数,看起来非常难看。 如果我想得到100个文件而不是2个,那将是一场灾难。 app.get('/api/two', function(req, res){ dataset.count(function(err, count){ var docs = []; var rand = Math.floor(Math.random() * count); dataset.findOne({'index':rand}, function(err, doc){ docs.push(doc); rand = Math.floor(Math.random() * count); dataset.findOne({'index':rand}, function(err, doc1){ docs.push(doc1); res.json(docs); }); }); }); }); 所以我尝试使用for-loop代替,但是,下面的代码不起作用,我想我误解了asynchronous方法的想法。 app.get('/api/two', function(req, res){ dataset.count(function(err, count){ var docs = [] for(i = 0; i < 2 ; i++){ […]