Tag: callback

我对节点中的“非阻塞”的理解是否正确?

人们有时会把下面的callback模式称为asynchronous。 function beAsync(msg, cb){ cb(msg); } beAsync("a", function(msg){ console.log(msg); }); console.log("b"); 什么人有时会说beAsync允许其余的代码运行,然后callback发生在准备就绪时。 当我最初调用beAsync和真正的asynchronous函数(如fs.readFile ,必须有一些代码同步运行, 然后发生了一些事情 ,允许readFile代码允许其余的代码被允许运行。 我正确地说,代表callback的东西进入一个低于JavaScript的循环吗? 所以beAsync的修改将包括一个setTimeout。 function beAsync(msg, cb){ setTimeout( function(){ cb(msg) }, 1); } 所以setTimeout和readFile的内部可以讲一个JavaScript所在的层? 说到这个低层是在JavaScript中实现非阻塞代码的唯一方法?

如何处理node.js中的不同错误types

在节点世界中,Error对象作为第一个parameter passing给callback函数。 区分节点中的错误types的正确方法是什么? 使用一些属性(.errorCode或.userNotFound)? 有单独的(错误inheritance)类和使用.constructor / instanceof? 任何其他公约我失踪了?

Javascript和女孩的callback – 两个问题

我刚刚冒险进入服务器端JavaScript的美妙世界,我仍然得到了asynchronous处理的窍门。 在搞了一个节点项目之后,我意识到这个javascript就像我以前的很多女朋友 – 他们不会callback。 无论如何,我希望有人能帮助我…这里的代码与下面的解释: //this is the function I'm calling to function queryDb(connection, sql){ connect(connection, function(){ connection.query(sql, function(err, results){ if(!err){ return results; end(connection); } else{ throw err; } }); }); } 这是我打电话的地方。 在调用之后,我想要执行一些代码,但是直到这个函数完成处理(实际上是对数据库的查询,所以需要更长的时间,而我的js只是继续前进)。 var queryResults = db.queryDb(db.connection, "SELECT * FROM Clients"); if(queryResults){ console.log(queryResults); req.dbResults = queryResults; next(); } else{ console.log('The query results where not […]

Node.jscallback调用两次

我为node.js使用sendgrid库。 目前有一个callback,它被炒了两次。 @invite = (email, agencyId, callback) -> (app.get 'agencies').findOne {_id: agencyId}, {name:1}, (error, agency) -> sendgrid.send { to: email, from: 'yamil.asusta@upr.edu', subject: "You have been invited to #{agency.name}", html: "<html><body>Have fun</a></body></html>" }, (success, message) -> console.log arguments if success console.log callback callback() else console.log message 这是我从控制台得到的 { '0': true, '1': undefined } [Function] { […]

名称Promisevariables等于callback参数

我想知道是否可以像传递给callback的参数一样命名承诺的variables名称: var dbItems = db.find(); dbItems.then(function(dbItems) { // Do some stuff with dbItems here… }); 我认为这在语法上是正确的,但是从代码风格的angular度来看,是否有任何争论(如可能的混淆或可读性)?

TypeError:undefined不是node.js / express.js中的函数

我得到了以下错误:TypeError:undefined不是一个函数 callback(null,array_reply,threadResults); 这部分看起来不好,但我不知道为什么。 我需要你的帮助。 谢谢 async.waterfall([ function (callback) { Model.find() .limit(10) .sort({pushed_date: 'desc'}) .exec( function (err, results) { if (err) { log('Error: ' + err.message); callback(err); return; } var array_reply = new Array(); async.forEachSeries(results, function (result, callback) { var reply = result.replies[result.replies_count]; array_reply.push(reply); },callback); callback(null, array_reply); }); }, function (array_reply, callback) { Model.find() .limit(10) .sort( […]

Node.js:res.redirect(“back”)得到错误('不能在发送之后设置头部')。

我有一个express.js应用程序的一个小问题。 在使用callback进行多个操作后,无法重新导向。 我的应用程序使用名为“标记”的对象,并按“子类别”进行评分。这些操作的目标是合并2个或更多个子类别,将所有标记从旧类别移动到新子类别,最后删除旧的子类别。 这里是代码: 检查2个或更多子类别后调用的操作: exports.postMergeSubCategories = function(req, res) { "use strict"; var data = {}; data.subCategories = req.body.subCategoriesChecked; data.enName = req.body.subCategory.enName; data.frName = req.body.subCategory.frName; data.deName = req.body.subCategory.deName; if (data.subCategories.length > 1) { sscategoryMapper.merge(data, function(err, sscategory) { if (err) return console.log(err); console.log ('Sub categories merged !'); req.flash('mergeMessage', 'Merge completed!'); res.redirect("back"); }); } else { // […]

如何防止Twitterstream中的callback触发每个新的tweet?

我的应用程序通过Twitterstream筛选匹配的string。 当它find一个匹配时,它应该增加一个计数器并通过socket.io发送新的计数给客户端。 不幸的是,socket.io正在发送每一个tweet,而不是每一个匹配。 它比需要的时间更频繁地发射,导致浏览器问题。 我怎样才能防止Twitterstream中的每个新事件调用callback? 这是我的twitterstream的代码: // Compares watchList (NYT Keywords) to Twitter stream, counts every mention exports.keywordStream = function(callback) { exports.initializeFeed().then(function(watchList) { // enter the stream t.stream('statuses/filter', { track: watchKeywords }, function(stream) { // read twitter firehose ('data') for incoming tweets. stream.on('data', function(tweet) { var tweetText = tweet.text.toLowerCase(); // compare the text of each […]

callback实现Node.js样式

我一直在想如何实现callback。 我总是漫游(在Node.js中)这是如何工作的: fs.readFile('mydata.txt', function (err, buffer) { 什么返回一个错误? 什么返回一个缓冲区? 我知道这些是callback,我一直在努力学习。 所以,我写了自己的简单的实现,以了解它。 有人可以看到这个简单的例子。 它来自我的头脑,因为我花了我的时间来了解我的工作。 当然,这可能是完全错误的。 我很乐意听取您的意见。 在放弃callback以支持Promise之前,我想100%的理解他们! 我的例子: function Executor (callback, nameParam) { callback(1,6, function (err, result) { if (err) { console.log(err); } else { console.log(result) } }); } function calculator(num1, num2, returnStuff) { var err, result, internalResult; internalResult = num1 + num2; if (internalResult < […]

Node.JS + Socket.io + MySql:查询callback仅调用2次

我正在使用socket.io mysql模块在node.js上实现一个聊天系统: client.on('message', function (data) { if (!channel) { console.error('Cannot send message: no channel created'); return; } console.log('message received'); channel.addMessage(data.conversationID, data.text); }); 通道是实现消息传递逻辑的对象。 addMessage如下: addMessage: function (conversationID, text) { var that = this; // Inner function that inserts a message record in the database and optionally notifies // the other connected client var insertMessageIn = […]