Tag: callback

如何使用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 […]

callback空数组js

这里是在SQL查询调用的function。 只有在完成所有查询之后,我才需要返回callback。 但它返回一个空数组如何返回数组与数据毕竟? ` function getUserSales(days, callback){ getUserByLastLoginDay(days, function (users) { var userArray = []; _.each(users, function (user) { getMostFavoredCat(user.id, function (cat) { if(!cat || cat.length == 0){ return false; } else { user.mostFavoredCat = takeMostRepeatingObj(cat); } getRelatedSaleByCat(user.id, user.mostFavoredCat.id, function (sales) { user.sales = sales; userArray.push(user) }) }) }) callback(userArray); }) } `

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) […]

我应该如何在节点js中使用db + http调用的promise

我需要执行哪个系统 从父集合获取数据。 检查在redis中find的特定密钥 如果没有,然后做一个http调用并获取json数据,然后设置caching 如果是,则从caching中获取数据 将数据保存到父标识的子集合中。 我有使用callback这样的工作解决scheme。 MongoClient.connect(dsn).then(function(db) { parentcollection.findOne({"_id" : new ObjectId(pid)}, function(err, data) { var redis = require("redis"), client = redis.createClient(); client.on("error", function (err) { console.log("Error " + err); }); // If not set client.get(cacheKey, function(err, data) { // data is null if the key doesn't exist if(err || data === null) { […]

Async.waterfall:callback已经被调用?

我知道这是以前在这里提到的一个话题,但我使用rethinkdb async.waterfall,我得到Error: Callback was already called 。 奇怪的是,即使它抛出的错误和崩溃的应用程序,它仍然会创build我所需要的数据库和表。 我已经阅读了几个像NodeJS Async:Callback已经被调用的答案吗? 或使用async.waterfall ,但我似乎无法得到任何地方。 我的控制台也告诉我,错误是在db.js:40:9 ,但我是新来的节点,只是不知道它想要什么callback。 我究竟做错了什么? 我需要在这里嵌套callback吗? 我正在使用的代码如下所示。 任何帮助,我可以在这里非常感激,如果需要我可以张贴其他相关的代码。 多谢你们。 db.js: exports.setDatabaseAndTables = function() { async.waterfall([ function connect(callback) { r.connect(config.rethinkdb, callback); }, function createDatabase(connection, callback) { // Create the database if needed. r.dbList().contains(config.rethinkdb.db).do(function(containsDb) { return r.branch( containsDb, {created: 0}, r.dbCreate(config.rethinkdb.db) ); }).run(connection, function(err) { callback(err, connection); […]

Api数据与Node.jsasynchronous并检索数据使其同步

我需要帮助,我正在做一个节点的天气应用程序。 我使用Google API来获取地址的经纬度,并将其反馈到Dark Sky API中,以便以JSON格式返回天气。 我的问题是,大多数时候天气API在google API返回经度和纬度之前进行search。 我知道为什么要这样做,因为Node的asynchronous性质。 我的问题是如何使这部分同步呢? var express = require('express'); var https = require('https') var bodyParser = require("body-parser"); var app = express(); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); var lon; var lat; app.post('/', function(req,res,next){ var search = req.body.search; function google(){ var api = "API-KEY"; var url = https.get(`https://maps.googleapis.com/maps/api/geocode/json?address=${search}&key=${api}`, function(res3){ var body = ""; […]

如何在fs.statcallback函数中运行

我使用npm剪纸https://www.npmjs.com/package/papercut图片上传,这是保存图像(完美的作品)的function。 uploader.process('image1', file.path, function(images){ console.log(images.avatar); // '/images/uploads/image1-avatar.jpg' console.log(images.small); // '/images/uploads/image1-small.jpg' }) 和我使用文件系统模块方法fs.stat ,我想创build一个目录,我想uploader.process在fs.statcallback内运行。 所以得到保存的图像进入fs.stat创build的目录。 这是我到目前为止我不知道在哪里把uploader.process函数的代码,所以callback调用它。 fs.stat(`${tenantId}/`, function (err, stats){ if (err) { // Directory doesn't exist or something. console.log('Folder doesn\'t exist, so I made the folder ' + `${tenantId}/`); return fs.mkdir(`assets/${tenantId}`, callback); } uploader.process('image1', file.path, function(images){ console.log(images.avatar); // '/images/uploads/image1-avatar.jpg' console.log(images.small); // '/images/uploads/image1-small.jpg' }) });

基于承诺的编程,可能与否?

我已经学习了很多关于你的导游,朋友的承诺 但在学习承诺之后,我的脑海里就产生了一个问题: 是真的(可能)build立整个node.js项目只有承诺? 如果不是的话: callback在哪里比诺言更有用?

NodeJS:callback和asynchronous调用

我一直在盯着我的屏幕太久,似乎无法弄清楚这一点…基本上我做3查询使用mongoose,每一个build设在另一个的结果。 由于某种原因,家长电话会在孩子完成任务之前完成。 这是我的代码,为什么父母不等待继续直到孩子完成了工作? 我怎样才能让代码运行,因为我想要它:-) 我被告知使用承诺,但它看起来如此复杂的使用,我认为使用callback将足以处理asynchronous调用或我错了吗? var ctr = 0; // counter 1 var ct2 = 0; // counter 2 //Array to be used for the header of the csv file var mainArr = [["Personeelsnummer", "Chauffeur", "Week 1", "Week 2", "Week 3", "Week 4"]]; // Find all users in the database User.find({}).exec(function (err, users){ // forEach […]

Async.eachSeries:已经调用callback

这是一个有点长和杂乱的代码,但请忍受我,因为我需要完成这个。 我正在尝试为每个用户更新一个json对象。 我想循环迭代等待asynchronous过程结束,以避免竞争条件。 然而,这导致了一个callback地狱,现在我不能决定什么是正确的地方为每个callback被返回。 我在嵌套async.eachSeries上提到了这个答案,并试图根据它来构造我的代码。 但是,这仍然行不通。 该代码在callback1()提供了已经调用的错误。 async.eachOfSeries(res, function (value, camp, callback3) { let _id = res[camp]._id; let arr = res[camp].campaignID; async.eachOfSeries(arr, function2, function (err) { callback3(); }) function function2(value1, i, callback2) { let users = arr[i].users; let id = arr[i].id; let loop = Math.ceil(users / 1000); let limit = 0, offset = 0; for […]