Tag: callback

如何使用JSDoxloggingcallback?

如何在JSDox中loggingcallback参数? 在jsDoc中有@callback标签,但JSDOX不支持它。 self.myFunction = function (cb) { }

链接function与callback,同时保持关注点分离

在我select的代码库中,我们有一系列asynchronous方法,扩展到两个function不同的模块。 即我们用GeneralTravel做一些东西,然后把数据传给Hotel相关的东西: Travel.processRequest(req){ //… then processHotel(req, Hotel.makeCall); } Travel.processHotel(.., callback){ //… callback(null, Hotel.fillDB); // 1 calls MakeCall } Hotel.makeCall(err, callback){ //… callback(); // 2 } Hotel.fillDB(){ //… return; } 我的代码stream的问题是 (除了这是一个酷刑), 我不想从Travel内决定Hotel应该怎样处理它的数据 Hotel.makeCall甚至不知道它的callback是什么! //see 1 & 2 in code 而在其他情况下,这个代码devise可能适合,我认为我们需要在这里改进。 它是模块的组织吗? 命名? 呼叫链? PS:在一个没有asynchronous的世界! 生活怎么样? 🙂

具有大量callback的NodeJS的性能

我正在做一个NodeJS应用程序。 有一个特定的RESTful API(GET),当用户触发时,它需要服务器执行大约10-20个networking操作来从不同的来源获取信息。 所有这些networking操作都是asynchronouscallback,一旦完成,结果会由nodejs应用程序整合并发送回客户端。 所有这些操作都是通过async.map函数并行启动的。 我只是想明白,因为nodejs是单线程的,并且不使用多核机器(至less不是没有集群),所以当有多个callback处理时,节点如何扩展? callback的实际处理是否依赖于节点的单线程处于空闲状态,还是并行处理callback以及主线程? 我问的原因是,我看到我20次callback的performance从第一次callback到最后一次callback恶化。 例如,第一次networking操作(在10-20之中)需要141ms才能完成,而最后一次需要大约4秒(从执行函数到函数的callback返回一个值的时间一个错误)。 它们都是相同的networking操作,打到相同的数据源,所以数据源不是瓶颈)。 我知道一个事实,即数据源不超过200ms来响应一个请求。 我发现这个线程 ,所以在我看来,单线程需要解决所有的callback和新的请求。 所以我的问题是,对于会触发很多callback的操作,优化其性能的最佳做法是什么?

TypeError:使用PayPal时,undefined不是一个函数

我在使用这里提到的示例示例时遇到以下错误: https : //github.com/paypal/PayPal-node-SDK/blob/master/samples/subscription/billing_plans/create.js 。 return callback(null, billingPlan.id); ^ TypeError: undefined is not a function at /home/mukul/scrub/server/payments/paypal/paypal.controller.js:241:17 at IncomingMessage.<anonymous> (/home/mukul/scrub/node_modules/paypal-rest-sdk/lib/client.js:131:13) at IncomingMessage.emit (events.js:129:20) at _stream_readable.js:908:16 at process._tickCallback (node.js:355:11) 以下是我的代码: function createBillingPlan(planDesc, planAmount, planFrequency, planName, planCurrency, callback) { var billingPlanAttributes = { "description": planDesc, "merchant_preferences": { "auto_bill_amount": "yes", "cancel_url": CANCEL_URL, "initial_fail_amount_action": "continue", "max_fail_attempts": "1", "return_url": RETURN_URL […]

如何处理传递给返回URL的HTTPcallback?

我一直被困在一个问题,其中,我正在向MBLOX HLR API发出一个请求,以validation下面的电话号码, https://hlrlookup.cardboardfish.com/HLRQuery?USERNAME=test&PASSWORD=test&RETURNTYPE=h&RETURNADDRESS=http://www.myurl.com&MSISDN=27837797094,27123456789 这将返回给我们如下的回应: 好的267492492 267492493 它会调用上面指定的RETURNADDRESS的HTTPcallback。 这将是一个GET请求,如下所示: GET / hlr?Status = Invalid&Ported = No&ErrorCode = 1&MSISDN = 27123456789&QueryID = 267492493&AccountID = 1546&ErrorDescription = Unknown%20Subscriber HTTP / 1.1 有人可以告诉我如何处理返回地址上面的GET HTTPcallback? 我正在使用Express,以下是我正在使用的代码: app.post('/validatePhoneNumbers',function(req,res){ body = "test"; var lines = req.body.phoneNumbers; phoneNumberVlaidationResults = {}; url = "http://hlrlookup.cardboardfish.com/HLRQuery?USERNAME=test&PASSWORD=test&RETURNTYPE=h&RETURNADDRESS=http://localhost:4000/validatePhoneNumbersCallback&MSISDN=" + lines; var request = http.get(url, function (response) { […]

为什么我的快递应用程序返回一个空数组?

我正在用express和mongodb创build一个CRUD API。 我有一个特定的路线查询我的mongo数据库中的一个集合,并检索符合查询条件的任何文档。 我的程序然后遍历这些文件,并在我的数据库中find另一个集合中的最新交叉条目 exports.findLatestCommitforAllRepos = function(req,res,next){ var githubCommitDataCollection = index.db.collection(githubCommitDataCollectionName); var enabledRepoCollection = index.db.collection(enabledRepoCollectionName); var latestCommits = []; enabledRepoCollection.find({enabled:true}).toArray(function(err,repos) { if (err) { next(err); } if (repos.length === 0 || repos === 'undefined') { res.status(404); res.send("There are no repos being tracked") } else { repos.forEach(function(enabledRepo) { var repo = enabledRepo.repo; var userOrOrg = enabledRepo.userOrOrg; […]

error handling与嵌套callbackasynchronous瀑布

我在async.waterfall( [] , function() )使用async.parallel。 代码如下: async.waterfall( [ function first(callback) { //some processing callback(); }, function second(result, callback) { //Here i query the db model.findAll() .then(function(success) { async.parallel( [array_of_functions], function done(err, result) { if (err) { callback(err); } } ) }) .catch(function(err) { callback(err); }) } ], function done(err, result) { if (err) { throw […]

节点MySQL插入,通过填充3个表格检索具有完整注册stream程的callback的多个表格

我知道这个问题很大。 但下面的代码是通过更新3表成功地工作,但我在处理,多个callback击中。 而且在这种情况下还需要帮助以获得最佳实践方式来处理callback。 工作目标:需要维护registry,login表,user_info具有公共用户名,电子邮件信息的表 成功的registry单从客户端提交到Req到Node JS之后 第一个条件名称不应该已经存在 – >检入代码 第二个条件电子邮件不应该已经存在 – >签入代码 registry , login表 ,用户信息表必须填写。 – >工作 但主要的意义是需要更新并同时检查任何mysql || 在“INSERT INTO”操作中的任何错误。 这是启动过程的路线//无代码中的语法错误 – 需要function点和帮助的逻辑点 router.post('/api/register', function(req, res, next) { console.log(req); let registerData = req.body; let gotCallBack = false; dbConnection(function(err, connection) { if(err) { console.log(err); res.send({'error': 'Something went wrong with Connection'}) } else { registerSave(registerData, […]

在MongoDB的查询之外获取数据

我正在做一个购物车,我必须获得产品的价格,以乘以数量,但我有asynchronous的问题,我不能在每个循环迭代的价格。 router.get('/cartlist', function(req, res) { var db = req.db; var collection = db.get('cart'); collection.find({},{},function(e,docs){ var totalPrice = 0; for(var i in docs) { var name = docs[i].productname; var amount = docs[i].amount; var products = db.get('products'); var idPrice = 0; getPrice(products, name, function(data) { idPrice = data; }); console.log(idPrice); } totalPrice += idPrice * amount; console.log(totalPrice); […]

从网页刮板返回数据,asynchronous问题

我陷入了一个JavaScriptcallback问题。 我已经使用了一个节点库来从客户端网站抓取数据,然后成功https://github.com/rchipka/node-osmosis 。 现在我需要它在另一个循环内进行刮擦和返回。 我会愚蠢的代码,但它的东西是这样的。 // within a loop of another parsing library (simplified) .on("data", function(obj){ listing = { listing['img'] = scrape(obj['ID']); } priceArray.push(listing); }) .on("end", function(){ // use this data }) // osmosis scrape function to be used inside loop // just need it to return value so it can be pushed into array […]