Node的异步与java的异步_node.js和异步编程回文
以下代码不是异步的,为什么以及如何制作呢?
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和异步编程回文相关推荐
- Java基础编程——回文数
什么是回文数? 回文数即一个数字从左到右读和从右到左读是同一个数. Java实现打印所有五位数中的回文数 分析: 要打印所有五位数中的回文数,只需要判断五位数的第一位和第五位是否相同,第二位和第四位是 ...
- java编写回文素数_java编程 回文素数
判断是否是素数这段代码是对的.请高手看看是哪里出问题了!~输入回文素数它都说是false....importjava.util.Scanner;publicclassHuiwen{publicstat ...
- node 生产的env文件怎么注入_Node.js进阶之进程与线程
进程与线程在服务端研发中是一个非常重要的概念,如果您在学习的时候对这一块感到混乱或者不是太理解,可以阅读下本篇内容,本篇在介绍进程和线程的概念之外,列举了很多 Demo 希望能从实战角度帮助您更好的去 ...
- 回文算法java实现_java算法题:最长回文串
LeetCode: 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串.在构造过程中,请注意区分大小写.比如"Aa"不能当做一个回文字符串.注 意:假设字 ...
- java递归看回文,如何使用正则表达式实现递归回文检查器? [关闭]
如果我理解正确,你想在Java中创建一个使用正则表达式的递归回文检查器 . 我对学习Java感兴趣,所以我把它作为我自己的"家庭作业问题",但它也可能是你的 . import ja ...
- Java字符串中最长回文子字符串
Longest palindrome substring in a string is a very common java interview question. To find out the l ...
- 1079 延迟的回文数 (20 分) java题解
题目描述: 给定一个 k+1 位的正整数 N,写成 ak⋯a1a0 的形式,其中对所有 i 有 0≤ai<10 且 ak>0.N 被称为一个回文数,当且仅当对所有 i 有 ai ...
- java如何判断回文数
java如何判断回文数 什么是回文数?数值两边呈对称的数是回文数,比如121,12321,1234321- 但是回文数应该怎么判断呢,以121举例子: 121%(取余)10得到了1, 12%10得到了 ...
- Node的异步与java的异步_node中异步IO的理解
解释性语言和编译型语言的区别: 计算器不能直接的理解高级语言,只能理解机器语言,所以必须把高级语言翻译为机器语言,翻译的方式有两种,一个是编译,一个是解释. 解释性语言的程序不需要编译,它是在运行程序 ...
最新文章
- django 连接mysql 数据库
- 转载-centos网络配置(手动设置,自动获取)的2种方法
- Ajax调用MVC控制器参数为实体
- .net core实践系列之短信服务-Api的SDK的实现与测试
- 面向对象六大原则详解
- python3.6sysos_python3.6实现学生信息管理系统
- Http Module 介绍
- 网恋奔现发现对方长得很好看是什么样的体验?
- python线程监控_Python多线程的事件监控
- android 梯形按钮_PLC编程入门梯形图实例讲解
- 基于范围的for循环
- ffmpeg推送直播流的技术进展
- DB2 SQL执行计划
- 微信小程序实现腾讯地图定位功能修改地址功能
- 新西兰计算机设计专业,2020年出国新西兰学习计算机专业的要求是什么?
- Elastic:如何摄入 Websocket 数据到 Elasticsearch
- R语言使用t.test函数进行t检验、使用配对的t检验(paired)检验组间不独立数据的差异是否有统计学意义
- 使用面向对象思想,输出员工信息并计算员工的工资。定义一个部门(Department)类,该类有部门编号(Id)、部门名称(Name)属性;再定义一个员工(Employee)类,该类的属性有员工编号
- 求球体的表面积,体积公式
- 优质项目管理从用户故事地图思维框架开始
热门文章
- zbb20171108 tomcat 性能优化
- linux命令:mkdir命令
- Oracle查询笔记
- iOS- 如何改变section header
- nunit 2.2.3 released, 支持vs2005 和.net 2.0了.
- ListableBeanFactory接口
- Spring-boot 打成jar包后使用外部配置文件
- vue init webpack vue-demo01复杂安装的详解
- javascript --- 类、class、事件委托的编程风格
- 实力打脸: 量子隐形传输与 “瞬间移动” 毫无关系