Tag: asynchronous

巴贝尔:“关键字'等待'被保留(53:24)”

我们正在使用asynchronous/等待我们的Meteor项目。 这个语法无处不在我们的resolvers.js。 一切正常,直到我们已经升级到节点6.7。 现在每次我们尝试构build它时,都会显示这个错误: “关键字'等待'被保留(53:24)” 有谁知道如何解决这个问题? 这里是我的.babelrc文件的内容: { "presets": ["es2015", "stage-2", "react"], "plugins": ["react-require", "babel-root-slash-import"] }

NodeJS gm同步获取图像大小

我正在使用gm并尝试根据其大小来处理图像。 由于“大小”getter需要callback函数,我不能在下面的行中使用大小。 我想要做的就是这样: function processImage(url) { var img = gm(this.getImgStream(url)); var width, height; img.size(function(err, val) { width = val.width; height = val.height; }); // I want to use width here, but it's undefined when this line is executed. if (width > 500) width = 500; return img.resize(width) } 我想在下面的resize方法中使用宽度。 有没有办法让大小同步或等待callback完成? 我不想尽可能长时间使用ivars。

Node.js中的成语callback

按照约定在Node中,asynchronouscallback接受一个错误作为它的第一个参数。 如果成功,则第一个参数不能出现。 我个人习惯写 callback(undefined, result); 在这种情况下。 但是,我在其他人的代码中看到 callback(null, result); 盛行。 是否“正式”logging在任何地方? 哪两个选项是惯用的节点? 有没有什么重要的理由可以相互比较?

node.js,以同步的方式在循环中一个接一个地执行mysql查询

在我的node.js中,表示应用程序,我用superagent中间件做了一个ajax调用。 该调用通过相当多的数据库查询使用node-mysql中间件获取复杂数组中的数据库数据。 在粘贴代码之前,我试图用言语解释我正在尝试做什么,尽pipe代码足以说明在第一个callback中的所有asynchronous事件应该以同步的方式完成。 说明: 在第一个查询的callback中,执行for循环多次运行第二个查询,在每个循环之后,只有在第二个查询的callback完成后才会调用下一个循环。 下一个代码行也是一样的。 码: 但是 ,如果你愿意的话,你可以跳过 for循环的内部(标注在注释中)来使事情变得简单和简单。 conn.query("SELECT * FROM `super_cats`",function(error, results, fields) { if(error){console.log("erro while fetching products for homepage "+ error);} for(var i in results) { // FIRST FOR LOOP INSIDE THE FIRST QUERY CALLBACK /*Innards of for loop starts*/ var elem = new Object(); var supcat_id=results[i].id; elem.super_id =supcat_id; elem.cats=new Array(); […]

async.map不会在nodejs中调用callback

我正在尝试使用async.map,但不能在下面的例子中调用callback的一些不明原因,函数d应该显示数组r,但它没有。 实际上就好像d从来没有叫过。 我一定在做一些非常错误的事情,但是搞不清楚 async = require('async'); a= [ 1,2,3,4,5]; r=new Array(); function f(callback){ return function(e){ e++; callback(e);} } function c(data){ r.push(data); } function d(r){ console.log(r);} async.map(a,f(c),d); 预先感谢您的帮助

如何通过node.js中的APIcallbackasynchronous执行?

API调用返回结果的下一个“页面”。 如何轻松优化结果callback? 这里是我需要这样做的一个例子: var url = 'https://graph.facebook.com/me/?fields=posts&since=' + moment(postFromDate).format('YYYY-MM-DD') + '&access_token=' + User.accessToken; request.get({ url: url, json: true }, function (error, response, body) { if (!error && response.statusCode == 200) { _.each(body.posts.data, function (post) { User.posts.push(post); //push some result }); if (body.pagination.next) { // if set, this is the next URL to query //????????? } […]

循环通过任务瀑布 – 承诺蓝鸟

我正在寻找循环通过蓝鸟一些任务,只是使用超时作为实验机制。 [不希望使用asynchronous或任何其他库] var Promise = require('bluebird'); var fileA = { 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five' }; function calculate(key) { return new Promise(function (resolve, reject) { setTimeout(function () { resolve(fileA[key]); }, 500); }); } Promise.map(Object.keys(fileA), function (key) { calculate(key).then(function (res) { console.log(res); }); }).then(function () { console.log('finish'); }); 结果是 finish, one, […]

在Node.js循环中设置setTimeout

对于setTimeout是如何工作的,我有点困惑。 我试图在一个循环中有一个setTimeout ,以便循环迭代相隔1秒。 每个循环迭代都会产生一个HTTP请求,而另一端的服务器似乎不能在如此短的时间内处理这么多的请求。 for (var i = 1; i<=2000 && ok; i++) { var options = { host:'www.host.com', path:'/path/'+i }; setTimeout(makeRequest(options, i), 1000); }; 为什么这不起作用,我怎么能做到这一点? 谢谢

NodeJS和asynchronous地狱

我刚刚来到这个可怕的情况,我有一个string的数组,每个代表一个可能存在的文件(例如var files = ['file1', 'file2', 'file3']我需要遍历这些文件名并尝试看看它是否存在于当前目录中,如果存在,停止循环,并忘记其余的剩余文件。所以基本上我想find这些文件的第一个现有的文件,并退回到一个硬编码的消息,如果没有发现。 这是我现在有: var found = false; files.forEach(function(file) { if (found) return false; fs.readFileSync(path + file, function(err, data) { if (err) return; found = true; continueWithStuff(); }); }); if (found === false) { // Handle this scenario. } 这不好。 它阻塞(readFileSync),因此它很慢。 我不能只为fs.readFile提供callback方法,这不是那么简单,因为我需要find第一个find的项目…而且callbackfs.readFile可以以任意顺序调用。 我想一种方法是有一个callback,增加一个计数器,并保持一个find/未find的信息列表,当它到达files.length计数,然后它检查通过find/未find的信息,并决定下一步该怎么做。 这是痛苦的。 我确实看到了IO中的性能优势,但这是不可接受的。 我有什么select?

如何正确提交蓝鸟的JSON.parse方法

我试图promisify JSON.parse方法,但不幸的是没有任何运气。 这是我的尝试: Promise.promisify(JSON.parse, JSON)(data).then((result: any) => {… 但我得到以下错误 Unhandled rejection Error: object