与你相遇好幸运,async解决循环回调问题

由于使用的sailsjs框架,用的是sailsjs自身带的ORm(就是waterline),ORM的默认数据库的返回值在回调里面。

>

arg是一个数组

count用来计数用

tmpArr临时存放变量

假设是Users模型根据arg数组里面的u_number来查询

查询后需要的结果在properties[‘u_hometown‘],然后把结果放在新的数组里面

最后循环结束后正好得到一个正确的tmpArr

var count = 0;
var tmpArr = [];
async.whilst(
  function() { return count < arg.length; },
  function(callback) {
    Users.find({u_number:arg[count].u_number}).exec(function(err,resul){
      err && sails.log.error(err);
      if(resul.length == 0){
        sails.log.error(‘notfound‘);
        var tmp = "";
      }else{
        var tmp =  resul[0].properties[‘u_hometown‘]
      }
      arg[count][‘u_homwtown‘] = tmp;
      tmpArr.push(arg[count]);
      count++;
      callback(null, count);
    });
  },
  function (err, result) {
    err && sails.log.error(err);
    console.dir(result);
    console.dir(tmpArr);
  }
);
时间: 2024-11-01 19:48:46

与你相遇好幸运,async解决循环回调问题的相关文章

JavaScript利用闭包解决循环绑定事件

例子: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <button></button> <button></button> <button></button> </body> <script type="text/javasc

深入研究Block用weakSelf、strongSelf、@weakify、@strongify解决循环引用(上)

深入研究Block捕获外部变量和__block实现原理 前言 在上篇中,仔细分析了一下Block的实现原理以及__block捕获外部变量的原理.然而实际使用Block过程中,还是会遇到一些问题,比如Retain Circle的问题. 目录 1.Retain Circle的由来 2.weak.strong的实现原理 3.weakSelf.strongSelf的用途 [email protected].@strongify实现原理 一. Retain Circle的由来 循环引用的问题相信大家都很理

ios Block解决循环引用和回传值

存在这么一个需求:为了降低控制器的耦合度,自定义了视图控件,但是现在另外一个页面需要显示自定义视图上的值:需要用block回调到控制器中来显示 啰嗦了一大堆,说个简单明了的(需求:B控制器要向A控制器传值). 1.首先第一步要在B控制器中定义block 例如: #import "BViewController.h" typedef void (^ AnswerBlock)(NSString *resutlStr); @class GXRiskRelatedQuery; @interfa

spring解决循环依赖

之前面试有被问到过,面试官很调皮,我擅长的点没有问,然后抽了一个点让我回答,这个点考察了源码的理解,当时只是大概记得是提前暴露,但是细节答得有些粗糙,特补充一下,,, protected Object getSingleton(String beanName, boolean allowEarlyReference) { Object singletonObject = this.singletonObjects.get(beanName); if (singletonObject == nul

Spring 如何解决循环依赖的问题

Spring 如何解决循环依赖的问题 https://blog.csdn.net/qq_36381855/article/details/79752689 Spring IOC 容器源码分析 - 循环依赖的解决办法 https://www.imooc.com/article/34150 原文地址:https://www.cnblogs.com/tonggc1668/p/11751384.html

spring怎么解决循环依赖

spring怎么解决循环依赖?首先会根据 beanName 从单例 bean 缓存中获取,如果不为空则直接返回 主要是从三个缓存中获取 (称他们为3级缓存),分别是: singletonObjects (1 单例对象的cache) earlySingletonObjects(2 提前暴光的单例对象的Cache ) singletonFactories (3 单例对象工厂的cache )getSingleton() 整个过程如下: 首先从一级缓存 singletonObjects 获取,如果没有且

Spring 循环引用(三)AbstractFactoryBean 如何解决循环依赖

目录 Spring 循环引用(三)AbstractFactoryBean 如何解决循环依赖 1. 循环依赖问题 2. 准备实验 3. 原因分析 4. 解决方案 5. 还有什么问题 6. 总结 Spring 循环引用(三)AbstractFactoryBean 如何解决循环依赖 Spring 系列目录:https://www.cnblogs.com/binarylei/p/10198698.html 本章讨论的范围:AbstractFactoryBean 创建单例 Bean 过程中出现的循环依赖问

使用friend和forward declaration解决循环引用的问题

friend(友元)可以干什么 修饰对象之一:类 假如B是A的友元,B的成员函数可以访问A的所有成员,包括protect和private成员变量和成员函数,示例: class A { friend class B }; 修饰对象之二:普通函数 普通函数F是A的友元函数,则这个普通函数可以访问A的所有成员,示例: class A { friend void ::GlobalFunc(); } 修饰对象之三:其它类的成员函数 成员函数F是A的友元函数,则这个成员函数可以访问A的所有成员,示例: cl

jquery.Deferred promise解决异步回调

我们先来看一下编写AJAX编码经常遇到的几个问题: 1.由于AJAX是异步的,所有依赖AJAX返回结果的代码必需写在AJAX回调函数中.这就不可避免地形成了嵌套,ajax等异步操作越多,嵌套层次就会越深,代码可读性就会越差. $.ajax({ url: url, data: dataObject, success: function(){ console.log("I depend on ajax result."); }, error: function(){} }); consol