Articles of asynchronous

为什么queryAsync()会导致添加元数据?

我使用queryAsync()按问题的答案规定,它的工作原理,但它增加了很多额外的元数据到我的查询结果,否则是一个简单的查询。 以下是我用来处理/执行查询并logging结果的内容: var retrieveSettings = Promise.method(function (username, connection) { console.log('User ' + username + ' retrieving settings…'); var q = 'select * from sales_settings'; return connection.queryAsync(q).then(function (rows, fields) { list = []; for (x = 0; x < rows.length; x++) { list.push(rows[x]); } //console.log('Settings: ' + JSON.stringify(list, null, 4)); return list; }); }); 这里是logging的结果: Settings: […]

JavaScript for循环内的asynchronous函数

我试图从数据库中获取数据到一个jsonvariables,然后将其发送到客户端,问题是,因为我从数据库中asynchronous获取所有数据,我不知道什么时候json被正确填充。 var geojson={ "type": "FeatureCollection", "features": [] }; var routeObjects=JSON.parse(route.route); for(var i=0;i<routeObjects.length;i++){ hostelery.getInfo(routeObjects[i].ID, function(err, hostelery){ if(!err) geojson.features.push(hostelery); }); } 所以,当所有的数据在geojson中,我想把它发回客户端… 任何帮助,将不胜感激… 非常感谢你。

在同步转换asynchronous进程

我正在玩javascript和node.js,所以我试着做一个asynchronous调用同步(我知道FS的lib有readFileSync,这只是玩) 所以这里的代码,它做了一个循环,直到callback改变标志值,循环应该中断,stream程应该继续,但它挂起… var fs = require("fs"); //read a file, just something asynchronous var readfilesync = function(filename){ var getout = false, result = null, error = null; fs.readFile(filename, "utf8", function(err, data){ if (err) { error = err; } else { result = data; } getout = true; }); while (!getout) { console.log('—waiting'); } return (error)? error […]

为什么zlib.deflate(buf,callback)是asynchronous的?

当接受input缓冲区,并知道压缩是一个CPU绑定的任务,是否需要提供callback? 是否只是像callback(err, result)一样遵循惯例? Doc: http : //nodejs.org/api/zlib.html#zlib_zlib_deflate_buf_callback

asynchronousJavascript有什么大不了的?

我刚刚开始阅读更多关于asynchronous编程的内容,并会问我的推理是否正确,如果不是我误解了什么? 我的理解是,在谈论I / O时,asynchronous编程通常是相关的,这是因为I / O事件的执行是由其他执行环境(例如操作系统或数据库)处理的。 然而,我也可以运行Node.js的两个实例,例如一个需要高度响应的实例,我立刻将长时间运行的Javascript进程传递给另一个Node.js实例,其中较长的进程可以lockingsingel线程,只发送回应告诉响应服务器,执行是否正常? 创build运行asynchronousJavaScript的外部执行环境的最常见方法是启动WebWorkers以避免阻止单个三个? 编写asynchronous代码也是有可能的,例如,如果我的所有asynchronous代码都是在一个singel Node.js实例上执行,而不是转移到某个其他执行环境。 这不会给我带来正面的影响,只会导致更复杂的程序逻辑,我的代码仍然需要在相同的环境中执行? 所以最后,asynchronous编程就是避免在singel线程中执行任何东西,你只想把实际的执行传递给其他进程? 我的推理是否正确?

与asynchronousfunction混淆

请注意,当谈到Node.js时,我总是noob。 我创build了一个WebSockets应用程序,当客户端连接时(通过基本身份validation,只有授权的客户端可以联系),才会每秒发送服务器状态和用法。 我想添加磁盘使用信息的数据,并使用nodejs-disks模块。 这是我创build的function,以获得我需要的信息: function getDiskStats() { var output = { count: 0, space: { total: 0, used: 0, free: 0 } }; df.drives(function(err, drives) { df.drivesDetail(drives, function(err, data) { output.count = data.length; for(var i = 0; i < data.length; i++) { output.space.total += parseInt(data[i].total); output.space.used += parseInt(data[i].used); output.space.free += parseInt(data[i].available) } }); }); return […]

Node.jsasynchronous循环,从下一个循环前的函数callback

我有一个async.whilst循环,在每个循环中循环一个名为hashtag的string数组。 在for循环中, searchTwitter()函数被触发。 我需要for循环暂停,直到从searchTwitter()函数返回一个callback,然后暂停2秒,然后for循环继续到hashtag数组中的下一个string传递给searchTwitter() 。 在循环结束之后,async.whilst循环中有一个超时,持续10秒,while循环再次重新加载for循环。 我下面的代码立即触发所有的searchTwitter()函数,而无需等待callback或setTimeout(callback,2000) : async.whilst( function () { return 0 == 0 }, function (callback) { for (var i = 0; i < hashtag.length; i++) { searchTwitter(hashtag[i]); setTimeout(callback, 2000); } setTimeout(callback, 10000); }, function (err) { } ); function searchTwitter(tag, callback){ T.get('search/tweets', { q: '#fun', count: 100 }, function(err, data, response) […]

async.series:可变数量的callback

我正在使用Node.js(Express)和MongoDB(mongooseJS)。 我想要创buildasynchronous函数(一个接一个地,以正确的顺序查询数据库); 问题是:如何创build可变数量的async.series函数,如下所示: var supply = [0]; async.series([ function(callback) { Model.find({ color: user.color[supply] }).exec(callback); }, ],function(err, results){ res.send('Chosen colors: ' + results); }); 如果 – 可以说 – 可变电源= [0,1,2], 那么callback函数将被放置三倍,0,1和2放置在那里: var supply = [0, 1, 2]; async.series([ function(callback) { Model.find({ color: user.color[supply] }).exec(callback); // supply = 0 }, function(callback) { Model.find({ color: user.color[supply] }).exec(callback); // […]

Javascriptasynchronous调用链接

给定一个包含typesA和B的对象的数组,其中B可以通过asynchronous调用转换为一组Atypes对象,这将是将数组转换为全A对象数组的最佳方式(将每个B对象在一组相应的A对象中)并在Bs被转换时执行callback? list = [A, B, A, B, A, A, B, A]; function transform (B, callback) { //transform B type object into A type objects array [A, A, A]….. callback([A, A, A]); } transformBObjectsIntoAObjects(list, callback) { // ????????? callback(list); // this should only be A type objects }

节点Mongoose的MongoDb和asynchronous性

我希望能有一个比我更多的知识的人一个快速的问题。 如果我有一个基本上创build一个实体并使用Mongoose将其直接保存到MongoDB的Node api实现中的代码,是否需要将所有包含在承诺库中的代码包装为尽可能asynchronous? 或者Mongoose / MongoDB Node库的实现已经以asynchronous的方式完成了他们的工作,所以我唯一的消息泵开销就是对象的创build。 下面的代码是我们在API中的代码,它创build了下面的承诺并执行它,我只是想知道,如果Mongoose / MongoDB库是asynchronous的,承诺的开销实际上是否值得。 希望一切都有道理。 function action(promise) { var date = new Date(), taskWorkQueue = new TaskWorkQueueModel({ "TaskId": taskid, "metadata": metadata, "State": 0, "TaskType": taskType, "ApplicationName" : token.ApplicationName , "dateEntered": date}); taskWorkQueue.save(function (err) { if (err) { promise.reject(err); } else { promise.resolve(taskWorkQueue); } });