以下代码不是异步的,为什么以及如何制作呢?

function compute(callback){

for(var i =0; i < 1000 ; i++){}

callback(i);

}

我将假设你的代码试图说,“我需要做1000次,然后在一切都完成时使用我的回调” .

即使你的for循环也不会在这里工作,因为想象一下:

function compute(callback){

for(var i =0; i < 1000 ; i++){

DatabaseModel.save( function (err, result) {

// ^^^^^^ or whatever, Some async function here.

console.log("I am called when the record is saved!!");

});

}

callback(i);

}

在这种情况下,你的for循环将执行保存调用,而不是等待它们完成 . 因此,在您的示例中,您可能会得到类似的输出(取决于时间)

I am called when the record is saved

hii

I am called when the record is saved

...

对于你的计算方法,只有当一切都真正完成时才调用回调 - 所有1000条记录都保存在数据库中 - 我会查看async Node包,它可以很容易地为你做到这一点, and 为你提供许多异步问题的模式我将面对Node .

所以,你可以重写你的计算功能:

function compute(callback){

var count = 0

async.whilst(

function() { return count < 1000 },

function(callback_for_async_module) {

DatabaseModel.save( function (err, result) {

console.log("I am called when the record is saved!!");

callback_for_async_module();

count++;

});

},

function(err) {

// this method is called when callback_for_async_module has

// been called 1000 times

callback(count);

);

console.log("Out of compute method!");

}

请注意,您的计算函数的回调参数将在 console.log("Out of compute method") 之后的某个时间被调用 . 此函数现在是异步的:应用程序的其余部分不会等待 compute 完成 .

Node的异步与java的异步_node.js和异步编程回文相关推荐

  1. Java基础编程——回文数

    什么是回文数? 回文数即一个数字从左到右读和从右到左读是同一个数. Java实现打印所有五位数中的回文数 分析: 要打印所有五位数中的回文数,只需要判断五位数的第一位和第五位是否相同,第二位和第四位是 ...

  2. java编写回文素数_java编程 回文素数

    判断是否是素数这段代码是对的.请高手看看是哪里出问题了!~输入回文素数它都说是false....importjava.util.Scanner;publicclassHuiwen{publicstat ...

  3. node 生产的env文件怎么注入_Node.js进阶之进程与线程

    进程与线程在服务端研发中是一个非常重要的概念,如果您在学习的时候对这一块感到混乱或者不是太理解,可以阅读下本篇内容,本篇在介绍进程和线程的概念之外,列举了很多 Demo 希望能从实战角度帮助您更好的去 ...

  4. 回文算法java实现_java算法题:最长回文串

    LeetCode: 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串.在构造过程中,请注意区分大小写.比如"Aa"不能当做一个回文字符串.注 意:假设字 ...

  5. java递归看回文,如何使用正则表达式实现递归回文检查器? [关闭]

    如果我理解正确,你想在Java中创建一个使用正则表达式的递归回文检查器 . 我对学习Java感兴趣,所以我把它作为我自己的"家庭作业问题",但它也可能是你的 . import ja ...

  6. Java字符串中最长回文子字符串

    Longest palindrome substring in a string is a very common java interview question. To find out the l ...

  7. 1079 延迟的回文数 (20 分) java题解

    题目描述: 给定一个 k+1 位的正整数 N,写成 ak​⋯a1​a0​ 的形式,其中对所有 i 有 0≤ai​<10 且 ak​>0.N 被称为一个回文数,当且仅当对所有 i 有 ai​ ...

  8. java如何判断回文数

    java如何判断回文数 什么是回文数?数值两边呈对称的数是回文数,比如121,12321,1234321- 但是回文数应该怎么判断呢,以121举例子: 121%(取余)10得到了1, 12%10得到了 ...

  9. Node的异步与java的异步_node中异步IO的理解

    解释性语言和编译型语言的区别: 计算器不能直接的理解高级语言,只能理解机器语言,所以必须把高级语言翻译为机器语言,翻译的方式有两种,一个是编译,一个是解释. 解释性语言的程序不需要编译,它是在运行程序 ...

最新文章

  1. django 连接mysql 数据库
  2. 转载-centos网络配置(手动设置,自动获取)的2种方法
  3. Ajax调用MVC控制器参数为实体
  4. .net core实践系列之短信服务-Api的SDK的实现与测试
  5. 面向对象六大原则详解
  6. python3.6sysos_python3.6实现学生信息管理系统
  7. Http Module 介绍
  8. 网恋奔现发现对方长得很好看是什么样的体验?
  9. python线程监控_Python多线程的事件监控
  10. android 梯形按钮_PLC编程入门梯形图实例讲解
  11. 基于范围的for循环
  12. ffmpeg推送直播流的技术进展
  13. DB2 SQL执行计划
  14. 微信小程序实现腾讯地图定位功能修改地址功能
  15. 新西兰计算机设计专业,2020年出国新西兰学习计算机专业的要求是什么?
  16. Elastic:如何摄入 Websocket 数据到 Elasticsearch
  17. R语言使用t.test函数进行t检验、使用配对的t检验(paired)检验组间不独立数据的差异是否有统计学意义
  18. 使用面向对象思想,输出员工信息并计算员工的工资。定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;再定义一个员工(Employee)类,该类的属性有员工编号
  19. 求球体的表面积,体积公式
  20. 优质项目管理从用户故事地图思维框架开始

热门文章

  1. zbb20171108 tomcat 性能优化
  2. linux命令:mkdir命令
  3. Oracle查询笔记
  4. iOS- 如何改变section header
  5. nunit 2.2.3 released, 支持vs2005 和.net 2.0了.
  6. ListableBeanFactory接口
  7. Spring-boot 打成jar包后使用外部配置文件
  8. vue init webpack vue-demo01复杂安装的详解
  9. javascript --- 类、class、事件委托的编程风格
  10. 实力打脸: 量子隐形传输与 “瞬间移动” 毫无关系