Articles of asynccallback

如何访问fscallback方法中的文件的名称?

如何从callback中访问fs.read , fs.stat …方法的参数? 例如,如果我想根据其大小处理文件(coffeeScript)代码片段 #assuming test1.txt exists filename = "./test1.txt" fs.stat filename, (err, stats) -> data = filename:filename,size:stats.size console.log data #further process filename based on size filename = "./test2.txt" 版画 { filename: './test2.txt', size: 5 } 因为文件名被设置为“./test2.txt”。 如果我使用fs.statcallback中的filenamevariables处理/读取文件,它将使用不是打算的test2.txt 。 我期望在callback中看到的是 { filename: './test1.txt', size: 5 }

无法使用mysql和节点js返回select查询值

我在节点js新,现在我想设置一个返回值select查询在mysql中使用节点js ….我正在使用node-mysql包… 示例代码 var mysql = require('mysql'); var connection = mysql.createConnection({ host : "localhost", user : "root", password: "root123", database: "testdb" }); var retValue = undefined; var query = connection.query('SELECT * FROM tblData;'); query .on('error', function(err) { // Handle error, an 'end' event will be emitted after this as well }) .on('fields', function(fields) { // […]

从另一个lambdaasynchronous调用aws lambda

我需要从另一个lambdaasynchronous调用aws lambda。 我有一个同步调用的工作代码。 exports.handler = (event, context, callback) => { var aws = require('aws-sdk'); var lambda = new aws.Lambda({ region: 'myregion' //change to your region }); console.log("lambda invoke started"); lambda.invoke({ FunctionName: 'testLambda', Payload: JSON.stringify(event, null, 2) // pass params }, function (error, data) { if (error) { console.log("error"); callback(null, 'hello world'); } else { console.log("lambda […]

如何实现可重用的callback函数

我相当新的JavaScript,我在节点工作,需要很好的理解asynchronous编程和callbackdevise。 我发现使用embedded式函数很容易,即使你的callback是多层次的。 您的embedded式callback只是最终被closures。 但是,如果在执行路由中有许多callback类似的callback,则最终会在不同的callback链中反复重写大量的callback代码。 例如,如果下面的mycb1和mycb2定义被移到A之外,那么它们不再具有对A的variables的隐式访问,因此不再作为闭包。 带有embedded式定义的示例,它们用作闭包。 mod.A=function(){ var mycb1=function(err){ if (!err){ var mycb2=function(err){ cb(err); }; mod.foo2(args,mycb2); } else{cb(err);} }; mod.foo1(args,mycb1); } mod.foo1 = function(args,cb){ //do some work cb(err); }; mod.foo2 = function(args,cb){ //do some work cb(err); } //execute mod.A(); 我想要做下面的事情,但是能够改变mycb1和mycb2函数的variables作用域,以便它们可以被用作closures被调用的地方。 例如: var mycb2=function(err){ … cb(err); }; var mycb1=function(err){ if (!err){ mod.foo2(args,mycb2); //but have it act […]

在node-http-proxy中的中间件中调用asynchronous方法

我正在尝试在Node.js中使用node-http-proxy创build一个代理来检查请求是否在mongodb中被授权。 基本上,我为node-http-proxy创build了一个中间件模块,像这样使用: httpProxy.createServer( require('./example-middleware')(), 9005, 'localhost' ).listen(8005) 中间件模块所做的是使用mongojs连接到mongodb并运行查询以查看用户是否有权访问资源: module.exports = function(){ // Do something when first loaded! console.log("Middleware loaded!"); return function (req, res, next) { var record = extractCredentials(req); var query = — Db query — //Debug: log("Query result", query); db.authList.find(query).sort({ "url.len": -1 }, function(err, docs){ console.log(docs); // Return the creator for the longest matching […]

JavaScript函数返回节点js中未定义的值

我正在编写获取数据的代码。 首先我调用getsomedata函数来获取数据,并在里面getsomedata函数我打电话给另一个函数getRandomdata获取数据并返回到前一个函数,但它是返回undefined。 但在getRandomdata数据越来越。 在某处谈论使用callback。 我是新来的JavaScript。 请帮忙。 我的代码看起来像。 router.get('/get-data', function(req, res, next) { var result = getsomedata( some_parameter ); console.log(result); // recieving undefined res.send( result ); }); function getsomedata( some_parameter_recieved ) { var getsomedata = getRandomdata( random_params ); console.log (getsomedata); // recieving undefined return getsomedata; } function getRandomdata( random_params_recieved ) { // after some calculation console.log(random_data); […]

Javascript是同步(阻塞)还是asynchronous(非阻塞)默认情况下

我想抓住Javascriptasynchronous函数和callback。 我陷入了callback函数的概念,在某些地方我正在阅读它们:它们被用来顺序执行代码(主要在jQuery的上下文中,例如animation)和一些地方,特别是在Nodejs的上下文中; 它们用于并行执行asynchronous并避免代码的阻塞。 那么这个专题的一些专家可以澄清这一点,并清除我脑海中的这个模糊(例子??)。 所以我可以使用callback函数 或者完全取决于你在哪里调用/在你的代码中放置一个callback函数? 。 谢谢, PS:我很害怕这个问题会很接近主观,但我仍然可以期待具体的答案(也许是一些例子) 编辑:其实这是互联网的例子,使我ambigous: function do_a(){ // simulate a time consuming function setTimeout( function(){ console.log( '`do_a`: this takes longer than `do_b`' ); }, 1000 ); } function do_b(){ console.log( '`do_b`: this is supposed to come out after `do_a` but it comes out before `do_a`' ); } do_a(); do_b(); 结果 […]

node.js中的for循环和asynchronouscallback?

我是JavaScript和node.js的新手。 我想遍历一个目录,并将所有文件统计(不是其他目录)添加到数组。 正如你在下面看到的,我的代码有一个问题,因为callback可能会在for循环完成后调用,所以在callback方法中使用“i”variables将不起作用。 但是,代码应该如何查看,以便下面的代码段工作? 它与封闭有什么关系? 感谢帮助! fs.readdir(SYNCDIR, function(err1, files) { var filesOnly = []; if(!err1) { for(var i = 0; i < files.length; i++) { var imgFilePath = SYNCDIR + '/' + files[i]; fs.stat(imgFilePath, function(stat){ if (stat.isFile()){ filesOnly[i] = stat; // This will not be correct since the for-loop has finished } }); } } […]

nodeJscallback简单的例子

任何人都可以给我一个简单的nodeJscallback的例子,我已经在很多网站上search过相同的东西,但是不能正确理解,请举个简单的例子。 getDbFiles(store, function(files){ getCdnFiles(store, function(files){ }) }) 我想要做那样的事情