Articles of asynchronous

“杂耍asynchronous” – 为什么我的解决scheme不会返回任何东西?

在问了一个问题,并得到一个非常有用的答案,在learnyounode的“Async Juggling”任务要求我做什么的时候,我着手自己实现它。 问题是,我的设置没有任何成功! 尽pipe我已经提到了其他的解决scheme,但是当我执行learnyounode verify myscript.js时,我的设置并没有返回任何结果。 GIST:jugglingAsync.js var http = require('http'); var app = (function () { // Private variables… var responsesRemaining, urls = [], responses = []; var displayResponses = function() { for(var iterator in responses) { console.log(responses[iterator]); } }; // Public scope… var pub = {}; pub.main = function (args) { responsesRemaining = […]

asynchronousnode.js代码(使用Q)不写入标准错误

在编写asynchronousnode.js代码时,我遇到了以下问题: 在asynchronous块内抛出的错误不会将任何内容打印到控制台标准错误 ,它们只是失败而已。 下面是一个自包含的工作示例来重新创build问题,我在asynchronouscallback的外部和外部调用一个不存在的函数: 注意//表示的行! 注释 var Q = require('Q'); function asyncFunc(){ var deferred = Q.defer(); setTimeout(function(){ console.log('resolving promise!'); deferred.resolve('resolveMessage'); },2000); return deferred.promise; } asyncFunc() .then(function (msg) { nonExisting(); // ! calling here puts no error on the console console.log('Promise.then entered, msg:',msg); }); //nonExisting(); // ! calling here results in referenceError correctly printed to the […]

Node.js响应asynchronous数据

最近我开始学习一些关于Node.js和它的function,并尝试将它用于一些Web服务。 我想创build一个Web服务,它将作为Web请求的代理。 我希望我的服务以这种方式工作: 用户将访问我的服务 – > http://myproxyservice.com/api/getuserinfo/tom 我的服务将执行请求 – > http://targetsite.com/user?name=tom 响应的数据会反映给用户。 为了实现它,我使用了下面的代码: app.js: var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); var proxy = require('./proxy_query.js') function makeProxyApiRequest(name) { return proxy.getUserData(name, parseProxyApiRequest); } function parseProxyApiRequest(data) { returned_data = JSON.parse(data); if (returned_data.error) { console.log('An eror has occoured. […]

asynchronous如何处理Javascript中的variables?

假设我有以下代码 var x = 5; for (var i = 0; i < 1000; i++) { x = x + i; } launch(x); function launch(x) { console.log(x); } javascript的asynchronous性质是否意味着可能会在for循环结束之前调用函数launch ? 还是只有在x的操作结束后才会调用? 如何确保后者? 更新:我在一个Node.Js应用程序中使用它

在node.js中同步调用

我有以下的方法: var get = function(query_para,callback) { var queryParams = query_para; var timestamp ; var some_Data = {}; var data; request({url:"http://some-url.com/q?", qs:queryParams}, function(err, response, body) { if(err) { console.log(err); return; } console.log(body); var data = JSON.parse(body); some_Data.count = data.count; console.log("Returned data: "+some_Data.count); callback(null,some_Data); }); }; 我想调用这个方法两次,并结合他们的结果。 我用以下方式使用callback来实现它: get({ start: '2014/09/13-10:00:00', end: '2014/09/13-11:00:00', format: 'json' }, function(err, […]

在蓝鸟中顺序运行asynchronous函数?

如果使用蓝鸟,我怎么能顺序地运行任务? 我有一个任务列表,每个任务都取决于以前的任务的结果,但任务可能是一个asynchronous的工作。 以下代码是不行的,我应该使用promise.all还是其他函数? “那么”链让我感到困惑,f2直接运行,而不是等待f1完成(我也不知道如何“解决”f1) var Promise = require("bluebird"); function f1(p1){ console.log("init value or f2 return:"+p1); var p = Promise.resolve(); setTimeout(function(){ var r = "aysnc result"; // how can i notify next step when a async operation done? // there is no p.resolve function },1000) return p; } function f2(p1){ console.log("f1 said:"+p1); return "f2 result"; } […]

节点asynchronous推送循环

我有一个asynchronous函数,我想执行我在一个范围内。 我试过这个: var async = require('async'); function main(a, b){ var funcs = []; for(var i=a; i<=b; i++){ var txt = "func "+i; funcs.push(function(callback){ console.log(i); console.log(txt); callback(null, null); }); } async.parallelLimit(funcs, 10, function(){ console.log("done"); }); } main(1,5); 输出是: 6 func 5 6 func 5 6 func 5 6 func 5 6 func 5 done 为什么我没有“function6”? 顺便说一句我想要1 […]

nodejsasynchronousmyMethod未定义

从async中调用我自己的模块方法时出现以下错误。 ReferenceError: RetriveLongitude is not defined at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\backgroundProcesses\searchTravelSolutions\PositionReferences.js:234:5 at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\node_modules\async\lib\async.js:570:21 at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\node_modules\async\lib\async.js:249:17 at D:\Userfiles\oozen\Workspace\sas_1.0_server\sas_1.0\node_modules\async\lib\async.js:125:13 at Array.forEach (native) PositionReferences模块如下: var RetrieveCoordinates = function(tw, callback){ async.parallel([function(callback) { RetrieveLatitude(tw, callback); }, function(callback) { RetriveLongitude(tw, callback); } ], function(err, coordinates) { if (err) { console.log('err occuured in Lattitude / Longitude retrieval : ' + err); return callback(err); } callback(null, […]

节点/吞吐同步删除任务内的目录

我有这样一个任务: gulp.task('test', function(){ del('./build'); gulp.src('./test/**/*') .pipe(gulp.dest('./build')); }); 实质上,这应该是首先删除生成目录,然后它应该复制一堆文件到一个新的生成目录。 我的问题:这两个命令是asynchronous还是同步? 在将文件复制到相同目录的新版本之前, del运行并完成显然是非常重要的。 如果他们是asynchronous的,那么我如何让他们同步运行? 我唯一的select是将它们分解为单独的任务,并让del任务依赖于“复制任务”? 在单个任务中没有办法使stream同步?

单独函数中的HTTP请求

通过使用asynchronous模块,我有这样的东西,它完美的作品。 但是当我尝试重构代码或使其可重用时,它在完成HTTP请求之前完成执行。 Nodejs以asynchronous方式做很多事情,所以find解决scheme对我来说有点难。 我到现在为止。 var async = require('async'), http = require('http'); exports.unitedStates = function(req, res) { var texas = { //GET method data here / ex: host, path, headers…. }; var washington = { //GET method data here / ex: host, path, headers…. }; async.parallel({ getSource: function(callback) { http.request(texas, function(respond) { //Http request }).end(); }, […]