Tag: asynchronous

mongoose升级后async不会在callback中返回数据

在我的项目中,我使用asynchronous查询到数据库,我有这段代码: async.auto({ one: function(callback){ getFriendsIds(userId, callback) }, two: ['one', function(callback, results){ getFriendsDetails(results.one, callback); }], final: ['one', 'two', function(callback, results) { res.status(200).send(results.two); return; }], }, function(err) { if (err) { sendError(res, err); return; } }); 返回friends的ID的方法如下所示: function getFriendsIds(userId, callback) { var query = User.findOne({_id: userId}); query.exec(function(err, user) { if(err) { callback(err); return; } return callback(null, user.friendsIds); […]

围绕asynchronous写一个循环,将并行读写文件?

我正在使用fs和phantomJS const phantom = require('phantom'); const fs = require('fs'); 我有4条路线 (url)从幻影JS打开。 当打开时,页面内容被读取,然后node.fs将这些内容写入到它自己的html文件中。 const routes = [ 'about', 'home', 'todo', 'lazy', ] 题: 如何并行地在const routes中的每个值循环这个asynchronous函数。 (async function() { const instance = await phantom.create(); const page = await instance.createPage(); const status = await page.open(`http://localhost:3000/${routes}`); const content = await page.property('content'); await fsPromise(`${routes}.html`, content); await instance.exit(); }()); const fsPromise […]

节点没有为成功的存储过程返回值

你还在处理这个问题吗? CALL eveql.sp_matFinder('ishkur'); 在DBeaver中成功返回并为我返回15行。 我已经在node.js中调用了这个语法。 connection.query('CALL eveql.sp_matFinder(?);', [itemName], function(err, rows){ if(err) throw err; console.log(rows); console.log(JSON.stringify(rows)); }); .query(返回成功,但是我收到一个空数组,我的结果应该是。 [ **[]**, OkPacket { fieldCount: 0, affectedRows: 0, insertId: 0, serverStatus: 34, warningCount: 0, message: '', protocol41: true, changedRows: 0 } ] Data : [[],{"fieldCount":0,"affectedRows":0,"insertId":0,"serverStatus":34,"warningCount":0,"message":"","protocol41":true,"changedRows":0}] 所以我也处于亏损状态 这可能是针对节点版本与MySQL的版本问题。

如何使用callback来等待两个查询asynchronous节点

我正在使用节点中的sql查询asynchronous模块瀑布方法。 我将如何使用callback来发送两组数据到下一个函数。 就像第一个将qryUpdateCheck和qryCheckDbl传递给下一个的函数一样。 这将如何正确完成。 async.waterfall([ function (callback) { var requestUpdateCheck = new sql.Request([config]); requestUpdateCheck.query("Some qryUpdateCheck", function (err, qryUpdateCheck) { console.log('qryUpdateCheck', qryUpdateCheck); }); var requestCheckDbl = new sql.Request([config]); requestCheckDbl.query("Some qryRequestCheckDbl", function (err, recordset) { console.log('qryCheckDbl', qryCheckDbl); }); callback(null, qryUpdateCheck, qryCheckDbl); }, function (qryUpdateCheck, qryCheckDbl, callback) { console.log('hi from second from qryUpdateCheck', qryUpdateCheck); console.log('hi from second from […]

对服务器中文件的连续写入很慢

我想用MEAN模块构build一个简单的操作系统,模拟plunker:我们有一个文件列表,左侧是textarea,右侧是实时预览。 请注意,文件保存在临时文件夹中,实时预览是由临时文件夹中的文件注入的iframe 。 我编写了一些东西。 在前端,控制器监视textarea中文件的修改; 每次有变化, render将被调用,它会发送一个$http.post来保存所有文件的新版本。 app.controller('Ctrl', ['$scope', 'codeService', function ($scope, codeService) { … $scope.$watch('files', function () { codeService.render($scope.files) }, true); }]); app.service('codeService', ['$http', function ($http) { this.render = function (files) { … var arrayLength = files.length; for (var i = 0; i < arrayLength; i++) { $http.post('/writeFile', files[i]); } } } 在后端: router.post('/writeFile', […]

asynchronous函数永远不会返回

我使用节点版本7.6.0来尝试本地asynchronous并等待function。 我试图找出为什么我的asynchronous调用悬挂从未真正解决。 NLP模块: const rest = require('unirest') const Redis = require('ioredis') const redis = new Redis() const Promise = require('bluebird') const nlp = {} nlp.queryCache = function(text) { return new Promise(function(resolve, reject) { redis.get(text, (err, result) => { if (err) { console.log("Error querying Redis: ", err) reject(new Error("Error querying Redis: ", err)) } else { […]

SQL查询与每个asynchronous

我的问题是当我得到用户数组,并尝试运行asynchronous每个启动每个sqlRequest,而不是一个一个地推入数组。 它应该做1 sqlRequest 1,而不是由每个用户sqlRequest和数组推动。 这里是一个asynchronous每个 function getUserFavCat(params, callback) { var usersArrayCat = []; async.each(params, function (user, cb) { sqlRequest("SELECT b_cat.title, b_cat.id FROM dbo.Students st INNER JOIN dbo.SaleView sv ON sv.userId = st.id INNER JOIN dbo.KEY_BrandcategoryToSale b_key ON b_key.saleId = sv.saleId INNER JOIN dbo.BrandCategories b_cat ON b_cat.id = b_key.brandCategoryId WHERE st.id = " + user.id, function […]

我怎样才能从一个长期的asynchronous过程接收实时更新?

我正在写一个小型的内部Web应用程序,读取表单数据并创build一个Excel文件,然后通过电子邮件发送给用户。 但是,我正在努力了解如何在完成过程时为用户实现实时更新。 有时这个过程需要10秒,有时这个过程需要5分钟。 目前,用户一直等到stream程完成,然后才能看到任何结果 – 当stream程正在完成时,他们没有看到任何更新。 在显示报告信息之前,前端等待来自服务器的201响应 ,并且用户被“阻止”,直到RC完成。 我很难理解如何asynchronous启动报告创build(RC)过程,同时允许用户导航到网站的其他页面。 或者看到在后台发生的更新。 我在此应该澄清一下,RC过程中的一些步骤使用Promises。 我想每秒轮询一次服务器,以获得正在生成的报告的更新。 这里有一些简单的代码来澄清我的理解: 端点 // CREATE REPORT router.route('/report') .post(function(req, res, next) { // Generate unique ID to keep track of report later on. const uid = generateRandomID(); // Start report process … this should keep executing even after a response (201) is returned. CustomReportLibrary.createNewReport(req.formData, uid); […]

NodeJS:具有asynchronous请求的recursion函数

我试图从2callback传递2结果到1 lodash函数(_.union) 使用recursion函数 。 我不明白我做错了什么! 我一直在“未定义”。 这是我的代码: 编辑: 我的新的代码与“承诺”技术 第一个函数检查远程DB- function findFiles(kw, callback){ if (_.isArray(kw)) {return callback(kw)}; return new Promise((resolve, reject) => { console.log(kw); word.aggregate([ { $match: { keyWord: kw } }, { $project: { filesFound: '$filesFound.fileName' , '_id':0} }, { $sort: { fileName: 1 } } ],function(err, obj){ console.log('checked' + kw); console.log(obj); if (err) […]

Node.js中asynchronousrecursion的问题

我有一个关于Node.js中的recursionasynchronous请求的行为的问题。 下面的函数旨在从MongoDB返回search结果。 如果初始search结果为空,则将文本分割为单个单词,然后尝试对每个单词recursion执行fetchResult(…),将res对象作为parameter passing。 function fetchResult(text, res){ var MongoClient = require('mongodb').MongoClient; MongoClient.connect(mongoURL + "/search", function (err, db) { if(err) throw err; db.collection('results', function(err, collection) { // search for match that "begins with" text collection.findOne({'text':new RegExp('^' + text, 'i')}, function(err, items){ var result = (items == null || items.result == null) ? "" : items; if […]