Tag: callback

定义节点函数的自定义callback

所以我有一个函数可以读取大约500个不同链接的一堆数据,并将这些数据保存到一个文件中,这个过程需要几秒钟的时间。 诀窍是,一旦抓取完成,我想开始操作这些数据,但是我不知道该怎么去做。 我知道,如果我正在做一个基本的http.get调用,我可以使用内置的callback函数,但这是我创build的自定义函数,所以当整个过程结束时如何做callback? 我读过,我可以定义一个callback传递给我的函数,并在我的函数结束调用,但似乎只是运行在一个不同的线程,而不是等待我的数据完成,然后再运行。 任何意见将apprecaited,希望这是有道理的。

Node.js:为什么要在error handling期间返回一个callback的结果?

新手到Node.js在这里。 我正在通过NodeSchool.io上的教程来学习Node.js,并且在一个我们学习模块的教程中,我们被要求写这样的代码: // Some code… function filteredLs(dir, ext, callback) { fs.readdir(dir, function(err, files) { if (err) return callback(err); // return statement necessary here… callback(null, withExtension(files, ext)); // …but not here }) } module.exports = filteredLs; 我的问题是,在像这样的例子中,为什么在处理错误时需要包含return语句,但是当它为空时可以省略? 无论如何,我不明白函数的返回值可能会有什么用处,因为它在完成工作之后才会发生。 为什么它有所作为?

什么是nodejs中的=>符号5.4

我读了nodejs 5.4 docs,在这里我find了一个例子中的=>符号,并且定义了一个新的callback函数的方法。 我不知道为什么=>被使用? 这真的是一种定义callback的新方法吗? 这是节点5.4文档的例子。 const spawn = require('child_process')。spawn; const ls = spawn('ls', ['-lh', '/usr']); ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); ls.stderr.on('data',(data) => { console.log(`stdout: ${data}`); }); ls.on('close',(code) => { console.log(`child process exited with code ${code}`); });

Express Async – 发送后无法设置标题,双重callback?

我有一个恼人的地狱问题与'错误:发送后无法设置标头。 在Express中。 这个代码最初使用的是Restify而不是Express,而我一直以来以这种或那种forms出现这个问题。 该代码向另一个API(已编辑)发出2个asynchronous请求,并将结果合并到单个JSON中,然后将其存储到MongoDB中。 任何洞察力将不胜感激,因为我尝试了所有我能想到的,不知道为什么相同的function将在Restify中起作用,而不是Express在适当的变化。 请不要评论厄运金字塔,我知道这不是理想的,但这不是重点;) app.post('/rest/test', jsonParser, /*keycloak.protect(),*/ function (req, res, next) { var requestObj = req.body; try { /* run async requests in parallel */ async.parallel([ function asyncReqV3(callback) { request.post(reqUrl1, option_v3, function(err, response, body) { if(err) { console.log(err); callback(true); return; } else { callback(false, body); } }); }, /* v4 async request */ […]

使用_this来引用父类的方法

我使用前缀_this从一个callback函数调用它时引用一个父类函数。 但是,当我运行节点服务器时,出现错误消息'_this is not defined'。 实际上,我直接从我正在学习的平均值堆书中抽取这些代码,但似乎无法解决这个问题。 父函数 var getErrorMessage = function(err){ var message = ''; if(err.code){ switch(err.code){ case 11000: case 11001: message = 'Username already exists'; break; default: message = 'Something went Wrong'; } } else{ for(var errName in err.errors){ if(err.errors[errName].message){ message = err.errors[errName].message; } } } return message; }; 稍后在callback中调用函数 exports.saveOAuthUserProfile = function(req, profile, […]

callback无法正常工作node.js

我正在一个for循环执行一个MySQL查询,这个循环是在callback函数,但是当我做console.log(我),它显示我三次。 下面是代码。 我正在使用async.parallel,我只发布有问题的代码。 res也返回正常,但obj显示第三个logging三次,而不是显示obj1数据,obj2数据,obj3数据。 console.log(i)是示例响应。 function(user,callback){ for(var i = 0; i < user.length ; i++) { var obj = user[i]; mySQLConn.mySQLDBConnection.query('select id,name from table where type = ?',[obj.id],function(err,res){ console.log(i); //This shows 3 three times obj.type = res; userJSONArray.push(obj); }) } } 我想要它应该打印1,2,3而不是3,3,3。 任何帮助真的很感激。

Nodejs / Javascriptcallback使用 – 等待API调用

我一直在寻找和阅读一段时间,似乎无法理解如何实现以下只有callback。 我知道这应该是“简单”,不希望使用承诺或任何其他库来解决它,因为我想了解如何才能实现这个callback。 我正在使用Node.js编写一个Web表单,如果没有提供JIRA事件编号,它将创build票据,然后发送电子邮件通知号码。 我有什么是…伪代码: function jiraCreate(req, res) { if req.body.inc is blank { var jiraInc = jiraAPI call to create ticket; } else { jiraInc = req.body.inc; } return jiraInc; } function jiraComment(req, res, jiraInc) { jiraCommentAPI(jiraInc) // jiraAPI call to add comments to the provided jiraInc } function handleJira(req, res) { var jiraInc = […]

“callback不是一个函数”Node.Js

我有一个使用mysql,async.waterfall在NodeJs中编写的项目 我也实施了async.waterfall,以避免我最近的问题,“callback不是一个函数” 但问题依然存在。 这是我的async.waterfall async.waterfall([ function (callback) { hold.getEntry(function(data){ var ref = data.ref; id = data.id; var message = data.mess; json = JSON.parse(message); return callback(null, {'ref':ref, 'id':id, 'json':json}); }); }, function (dataa, callback) { if(dataa.ref === null){ callback(null); }else{ hold.checkPositionCandidate(dataa.ref, dataa.id, dataa.json, function(dataaa){ return callback(null, dataaa); }); } }, function(anoData, callback) { console.log(anoData); if(anoData === […]

使用For循环迭代asynchronous函数(db query,Node.js)

我在我的项目的最后一部分,我试图插入数据从JSON在我的MySQL分贝这里是我的样本数据 {"data": [{"cpos": "g", "cfname": "e", "clname": "ejercito", "cvcount": "4"}, {"cpos": "g", "cfname": "j", "clname": "ejercito", "cvcount": "5"}]} 和示例数据正在parsing我的function(抱歉长function) checkPositionCandidateInsertVote: function(ref, prid, json, callback){ var len = json.data.length; for (var i = 0; i < len; i++) { var fn = (json.data[i].cfname).toLowerCase(); var ln = (json.data[i].clname).toLowerCase(); var c = json.data[i].cvcount; console.log(fn, ' ', c); switch((json.data[i].cpos).toLowerCase()){ […]

如何使用函数内的callback函数?

我想调用一个函数内的callback函数,所以我不知道该怎么做 function call(){ pg.connect(conString, function(err, client, done) { if(err) { return console.error('error fetching client from pool', err); } client.query('INSERT into post1 (data) VALUES ($n)', function(err, result) { //call `done()` to release the client back to the pool done(); if(err) { return console.error('error running query', err); } console.log(result.rows[0].number); //output: 1 }); }); } board.on("ready", function() { […]