Articles of asynchronous

在Meteor中,Meteor.wrapAsync是否阻塞其他呼叫?

在Meteor JS代码中,我使用HTTP.get方法在一个方法内调用服务器。 我必须返回结果给客户端,所以我用Meteor.wrapAsync包装这个函数来获得一个同步函数。 var httpSync = Meteor.wrapAsync(HTTP.get, this); var result = httpSync(myUrl); 我的问题是 – 将Meteor.wrapAsync(AsyncFunction)阻止其他请求? 它会影响多个请求的并行执行吗?

在Javascript中编写asynchronous方法(在Node.js中运行代码)

在下面的代码中,我试图理解编写asynchronousJavaScript函数的概念。 要明确我的假设: 函数logTest()被调用。 它调用asyncTest(),传入log()函数。 但是,asyncTest()不直接调用log()。 而是将其传递给事件队列,以在堆栈清除时被调用。 在for循环完成之前,堆栈不应该清除,写入20个“waiting …”。 但是,控制台输出在for循环之前先放置“async”行。 我在Node.js中运行这个代码,其中console.log是一个同步函数。 有谁知道为什么“asynchronous”行不写最后? function asyncCall(method) { return setTimeout(method, 0); } function log(str) { console.log(str); } function logTest() { asyncCall(log("async")); for(var i = 0; i < 20; i++) { log("waiting…"); } } logTest();

在Nodejs上同步读取或写入?

为什么以及什么时候我们应该更喜欢read/writeFileSync到Nodejs上的asynchronous服务器,特别是服务器应用程序?

asynchronous控制stream – 完成for循环后返回true

我在Node.js中有以下方法: var foo = function(items){ for (var i=0; i<items.length; i++){ var item = items[i]; bar(item); } return true; } 我想在所有酒吧完成更新后,foo返回true。 我怎么做? 编辑:我正在寻找一种方法来做到这一点,如果可能的话没有任何外部库。

如何把不同的请求的响应放在与nodejs相同的文档中并请求?

嗨,我想把不同的请求的反应在同一个文件。 我有这个文件: var result = {google:"", twitter:"", facebook:""} 我想对这些网站(google.com,Facebook.com,twitter.com)做不同的GET请求,并把所有的结果放在通讯录中。 我尝试了嵌套的callback,但这样我必须先做谷歌调用,然后像这样的微博等: Request({ url:first_url, },function(err, response, body) { if (err) { request.log(err); }else{ risultato.google = body; Request({ url:second_url, },function(err, response, body) { if (err) { request.log(err); }else{ risultato.facebook = body; Request({ url:third_url, },function(err, response, body) { if (err) { request.log(err); }else{ risultato.twitter = body; console.log(result); } }); […]

如何处理客户端nodejs的asynchronous请求?

我是NodeJS的新手。 我在服务器端使用NodeJS。 我试图做一个简单的基于REST的GET请求,它从用户接收search参数searchvar ,并返回在JSON数组中find的匹配logging。 我的服务器代码如下: var express = require('express'); var app = express(); var MongoClient = require('mongodb').MongoClient; var assert = require('assert'); var ObjectId = require('mongodb').ObjectID; var url = 'mongodb://localhost:27017/mydb'; app.get('/search', function(req, res) { res.set({ 'content-type': 'application/json; charset=utf-8' }); res.header("Content-Type", "application/json; charset=utf-8"); res.charset = 'utf-8'; var searchvar = req.query.searchvar; if(searchvar != null) { var recordsArray = […]

迭代asynchronous函数

我有一个使用模块cherio从网站获取数据的function。 现在我想通过关键字数组遍历这个函数,在一个名为stats的数组中收集中间结果,最后通过console.log()将stats数组的结果打印到控制台。 每当我运行这个脚本时,它会很快触发asynchronous函数并打印一个空的stats数组。 现在我的问题:我如何等待asynchronous函数完成,以便我可以打印数组到控制台,当它填充/完成。 我search了很多,search堆栈溢出。 似乎有很多方法可以实现我的目标,但是在这个节点中最习惯的方式是什么呢? 这是我解决这个问题的方法: var request = require("request"), cheerio = require("cheerio"), base_url = "http://de.indeed.com/Jobs?q="; // after equal sign for instance: sinatra&l= /* search syntax: – http://de.indeed.com/Jobs?q=node&l=berlin&radius=100 – – */ // // var search_words = ["django", "python", "flask", "rails", "ruby", "node", "javascript", "angularjs", "react", "java", "grails", "groovy", "php", "symfony", "laravel" ]; var counter […]

NodeJS Addon从NAN内部调用JavascriptcallbackAsyncWorker :: Execute

我想从我的asynchronous附加函数中调用nodejscallback。 我已经看到了同步的例子( 在这里 ),我正在使用一个奇妙的asynchronous例子( 在这里 )作为一个起点。 但是,当我尝试执行给c ++ AsyncWorker子类的callback时,出现分段错误。 这是我的代码: #include <nan.h> #include <functional> #include <iostream> #include <exception> using namespace Nan; using namespace v8; using namespace std; class ScriptWorker : public AsyncWorker { public: ScriptWorker(Callback *callback, const std::map<std::string, Callback*>) : AsyncWorker(callback), script(script), cbs(cbs) {} ~ScriptWorker() {} void Execute () { // ———————— // Segmentation fault […]

在主程序之前在lambda中加载S3文件

我正在写一个lambda函数,需要加载一个存储在S3中的密钥。 它不会经常改变,所以我宁愿不要每次调用lambda函数都抓住它,所以我想在容器被启动时加载一次,然后在lambda容器的生命周期中保存该值。 但是,由于asynchronous方法getObject,这导致了一个问题,因为在运行main module.export代码时(特别是如果这是第一次运行并且正在创build容器),文件可能未被加载。 我已经使用setTimeout实现了一个解决方法,但是我想看看这个推荐的方法是什么,而且我的方法有什么问题,因为它感觉不对! 示例代码: var AWS = require('aws-sdk') var s3 = new AWS.S3(); var fileLoaded = false; var params = { Bucket: 'bucket-name', Key: 'file-name' }; s3.getObject(params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else { console.log('File loaded from S3'); fileLoaded = true; } }); exports.handler = (event, context, […]

在Promise返回函数中find第一个成功

给定一些function,返回承诺: function foo(arg) { return new Promise(function(resolve, reject) { if (stuff(arg)) { resolve('result from foo'); } else { resolve(null); } }); ); // … maybe more of these functions … function bar(arg) { return new Promise(function(resolve, reject) { if (otherStuff(arg)) { resolve('result from bar'); } else { resolve(null); } }); ); 我们怎样才能以串行方式迭代函数,在第一个函数返回一个非空值之后短路呢? [ foo, // […]