Tag: asynchronous

节点:试图使用`asynchronousfunction`抛出错误

我只有: router.post('/register', async (req, res) => { // planning to use await in here }); 但是我得到这个错误。 如果节点支持await / async,我试过Googlesearch,但我似乎无法得到任何进展,我只是继续find本地模块,以实现它到节点(这可能是问题,但我真的希望它的语法错误,该节点本地支持asynchronous/等待) router.post('/register', async (req, res) => { ^ SyntaxError: Unexpected token ( at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:374:25) at Object.Module._extensions..js (module.js:405:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) at require (internal/module.js:12:17) at Object.<anonymous> (/app.js:13:15) at […]

处理内部asynchronous调用时,函数参数的作用域是什么?

在我的下面的例子中,其中一个快速应用callback的参数行为有所不同,取决于它们是否封装在辅助函数中。 我已经解决了我的问题,但我想更好地了解这里发生了什么。 getItem和buildView返回使用Q创build的buildView 。 下面的代码工作(即没有失败callback被称为): var app = require("express")(); app.get('/item/:itemId', function(req, res){ var showItem= function(item){ var s = function(x){res.send(x);}; buildView(item).then(s).fail(console.log); }; var showError = function(error){ res.send(error.message); }; getItem(req.params.exception_id) .then(showItem).fail(showError); }); 下面的代码不会(console.log打印[TypeError: Cannot read property 'req' of undefined] )): var app = require("express")(); app.get('/item/:itemId', function(req, res){ var showItem= function(item){ buildView(item).then(res.send).fail(console.log); }; var showError = function(error){ res.send(error.message); […]

如何asynchronous并行多个app.use调用?

如何asynchronous并行多个app.use调用? 我读过https://github.com/caolan/async ,我看过: async.parallel([ function(){ … }, function(){ … } ], callback); 但我不太清楚如何使用它与以下内容: app.use('/api/users', api.users); app.use('/api/score', api.score); app.use('/api/payment', api.payment); app.use('/api/ci',api.ci); app.use('/api/db', api.concepts); app.use('/api/swing', api.swing); app.use('/api/list', api.list);

等待数据从asynchronous嵌套在JQuery中的函数$ .each在Javascript中

这是$ .each内部asynchronouserror handling的后续问题。 正如在那里的评论中提到的,我想处理$ .each循环中的最后一个asynchronous作业之后的数据。 举个例子: var errors = 0; var started = 0; var successful = 0; $.each(…, function(){ started++; connection.query('INSERT INTO tableName SET ?', post, function(err, result) { if (err) { if (err.code === 'ER_DUP_ENTRY') { errors++; } else { throw err; } } else { successful++;} if (started == successful + errors) […]

回送模型validation失败(asynchronous行为)

我试图validation一个模型,它的内容。 但是,由于回送自定义validation函数的结构,编程比简单stringvalidation更高级的逻辑相当困难。 Job.validate('job_definition, function(err){ //err(); //this will succeed in throwing error Job.app.models.anotherModel.findOne({where:{name:this.job_definition.toolName}}, function(error, tool){ if(tool.aProperty === this.job_definition.aProperty){ //err(); //this will not succeed, validation script will exit before err() is thrown } }); }, {message: 'this is malformed'}); 我怎样才能得到这个validationfunction,在退出之前等待?

节点asynchronous瀑布callback已被调用

我试图读取从asir.waterfall目录的一些文件,在我看来,我正在做的东西正确的,但我得到了指定的错误和readData函数从来没有被调用。 怎么了? var fs = require("fs"); var async = require("async"); var folder = "./files/"; try { async.waterfall([ function readDir(cb) { fs.readdir(folder, function(err, files) { cb(err, files); }); }, function loopFiles(files, cb) { files.forEach(function(fn) { console.log("loop " + fn); cb(null, fn); }); }, function check(fn, cb) { console.log("check "+fn); fs.stat(folder + fn, function(err, stats) { console.log(stats.isFile()); […]

在JS中做一个for循环等待一个库

如何创build一个for循环等待一个asynchronous调用完成之前开始一个循环的新的迭代没有库(如jQuery)? 例: var items = [1,2,3,4,5]; for (var i = 0; i < items.length; i++) { var promise = new Promise(function(resolve, reject){ asyncAPIcall({ body : item[i] }, function(error, response){ if(error) { reject(); } else { resolve(); } }); promise.then(function() { //continue loop }, function() { //break loop }); } 谢谢 更新(4/29) 我想到了这个解决scheme,我创build了一个自称的函数: var items = […]

事件循环为空或在超时后退出Node.js进程

我有一个Node应用程序做一些asynchronous的事情,我不能冒险的事情,许多模块之一做坏事,卡住,所以应用程序将永远不会退出。 (这只是在发送日志消息到服务时发生的。) 我不能直接使用process.exit ,因为无论有多less个asynchronous操作挂起,它都会终止。 尽pipe如此,我想尽快退出,所以这不会: function exit() { setTimeout(function() { process.exit(1); }, 10000); } 因为这将等待10秒,即使一切正常,1秒后所有的asynchronous事件结束。 我正在考虑检查如果事件循环是空的,除了这个计时器,然后退出。 这可能是通过一些无证的stream程方法来完成的,但是我更喜欢避免这样的黑幕。 任何想法更好的方法来解决这个问题?

如何按照数组内容的顺序执行async.map函数

我有下面的代码例程,很好用。 唯一的问题是,我需要的结果回来的links数组相同的顺序。 例如,我需要首先返回google.com链接的结果,然后是雅虎等。代码当前以“随机”顺序返回。 var Nightmare = require('nightmare'); var async = require('async'); var links = [ "http://www.google.com", "http://www.yahoo.com", "http://www.bing.com", "http://www.aol.com", "http://duckduckgo.com", "http://www.ask.com" ]; var scrape = function(url, callback) { var nightmare = new Nightmare(); nightmare.goto(url); nightmare.wait('body'); nightmare.evaluate(function () { return document.querySelector('body').innerText; }) .then(function (result) { console.log(url, result); }) nightmare.end(function() { callback(); }); } async.map(links, scrape); 更新:谢谢@christophetd。 […]

用Node,Express和google Analytics API在callback地狱中丢失

我在这里是初学者,所以我会尽我所能地揭露我的问题。 我试图在服务器端调用Google AnalyticsAPI,以在客户端显示一些数据,并使用d3和react。 这是我的脚本来调用GA API: var google = require ("googleapis"); var key = require ('./client_id.json'); const VIEW_ID = 'ga:80820965'; let jwtClient = new google.auth.JWT( key.client_email, null, key.private_key, ['https://www.googleapis.com/auth/analytics.readonly'], null ); jwtClient.authorize(function (err, tokens) { if (err) { console.log(err); return; } let analytics = google.analytics('v3'); queryData(analytics); }); var queryData = function(analytics) { analytics.data.ga.get({ 'auth': jwtClient, 'ids': […]