Tag: callback

为什么我需要在node.js中写回“function(value){return my_function(value);}”作为callback?

对JS来说是全新的,所以请原谅,如果这是令人难以置信的明显。 假设我想用一个映射string – > bool的函数f来过滤string列表。 这工作: filteredList = list.filter(function(x) { return f(x); }) 这失败了: filteredList = list.filter(f) 为什么??? 代码示例: ~/projects/node (master)$ node > var items = ["node.js", "file.txt"] undefined > var regex = new RegExp('\\.js$') undefined > items.filter(regex.test) TypeError: Method RegExp.prototype.test called on incompatible receiver undefined at test (native) at Array.filter (native) at repl:1:8 at […]

Node.js:你能使用stream内的asynchronous函数吗?

考虑以下: var asyncFunction = function(data, callback) { doAsyncyThing(function(data){ // do some stuff return callback(err) }) } fs.createReadStream('eupmc_lite_metadata_2016_04_15.json') .pipe(JSONstream.parse()) .on('data', asyncFunction) // <- how to let asyncFunction complete before continuing 如何知道什么时候asyncFunction已经完成? 有没有什么办法从stream内使用asynchronous函数?

callback函数的例子

我很难理解如何在下面的代码块中使用callback()函数。 当function callback{}没有被定义时,我们如何在函数体中使用callback()作为函数? 在下面的callback函数中传递true / false作为参数的代表是什么? 我感谢任何澄清,提前致谢! socket.on('new user', function(data, callback){ if (nicknames.indexOf(data) != -1){ callback(false); }else{ callback(true); socket.nickname = data; nicknames.push(socket.nickname); updateUserList(); } });

将variables传递到Node.js中的callback函数的最佳方法

我一直在想,除了使用bind()之外,还有更好的方法将variables传递到node.js中的callback函数中。 这里是一个例子: var fs = require('fs'); for(var i = 0; i < 100; i++) { fs.writeFile(i + ".txt", i, function(error) { fs.stat(this.i + ".txt", function() { fs.rename(this.i + ".txt", this.i + ".new.txt", function() { console.log("[" + this.i + "] Done…"); }.bind({ i: this.i })); }.bind({ i: this.i })); }.bind({ i: i })); } 注意bind()方法,直接传递i的值。 谢谢。

在nodejs中callback地狱?

在下面的代码中,我在callback? 如何克服这种情况,而不使用纯JavaScript中的任何asynchronous模块? emailCallBack(e_data, email); if (email_list.length) { checkEmail(email_list.pop()); } else { completionCallback(); } 上面的代码被复制到多个位置,以使代码正常工作。 function processInviteEmails(email_list, user_id, emailCallBack, completionCallback){ function checkEmail(email){ try { check(email).isEmail(); //is valid email checkConnected(email, user_id, function(connect_status, user_row, user_meta_row, connect_row){ var e_data; //insert to connect and send msg to queue if(connect_status === 'not connected'){ var cur_date = moment().format('YYYY-MM-DD'); var dbData = { […]

用Lambda查询DynamoDB什么也不做

我有一个Lambda函数的以下代码: console.log('Loading function'); var aws = require('aws-sdk'); var ddb = new aws.DynamoDB(); function getUser(userid) { var q = ddb.getItem({ TableName: "Users", Key: { userID: { S: userid } } }, function(err, data) { if (err) { console.log(err); return err; } else { console.log(data); } }); console.log(q); } exports.handler = function(event, context) { console.log('Received event'); getUser('user1'); […]

我怎样才能做callback,需要它的子function的信息

我正在使用Node.js作为Haraka (一个smtp服务器)插件的项目。 这是Node.JS,我有一个小问题与callback。 我还没有能够转换这个特定的代码来使用callback。 所以,这是我有的代码: exports.hook_data = function (next, connection) { connection.transaction.add_body_filter('', function (content_type, encoding, body_buffer) { var header = connection.transaction.header.get("header"); if (header == null || header == undefined || header == '') return body_buffer; var url = 'https://server.com/api?header=' + header ; var request = require('request'); request.get({ uri: url }, function (err, resp, body) { […]

NodeJS:process.nextTick vs即时回叫

我写了很多模块,看起来像这样: function get(index, callback) { if (cache[index] === null) { request(index, callback); // Queries database to get data. } else { callback(cache[index]); } } 注意:这是我的实际代码的一个简化版本。 该callback要么在相同的执行中被调用,要么在稍后的某个时间被调用。 这意味着模块的用户不能确定哪个代码首先运行。 我的观察是,这个模块重新引入了以前由JavaScript引擎解决的multithreading的一些问题。 问题:我应该使用process.nextTick还是确保在模块之外调用callback是安全的?

在node.js中的默认参数

如何设置node.js中的默认参数? 例如,假设我有一个通常看起来像这样的函数: function(anInt, aString, cb, aBool=true){ if(bool){…;}else{…;} cb(); } 调用它会看起来像这样: function(1, 'no', function(){ … }, false); 要么: function(2, 'yes', function(){ … }); 但是,这似乎并没有像这样node.js支持默认参数。 上面最好的办法是什么?

什么是Passport策略中的“完成”callback函数configuration“使用”function

我是一个node.js和express.js noob。 这个问题可能看起来很愚蠢,但我真的很困惑。 我正在尝试使用护照configuration本地策略身份validation。 如正式文件所示,我们可以通过以下代码来确定本地策略, passport.use(new LocalStrategy( function(username, password, done) { User.findOne({ username: username }, function (err, user) { if (err) { return done(err); } if (!user) { return done(null, false); } if (!user.verifyPassword(password)) { return done(null, false); } return done(null, user); }); } )); 我的困惑是关于donecallback函数。 当官方文档使用路由处理器中的中间件来显示这个本地策略时,不需要为这个donecallback传递函数参数。 app.post('/login', passport.authenticate('local'), function(req, res) { res.redirect('/'); }); 那么,如果我们不提供函数参数,是不是donecallback函数? […]