nodejs,async同步执行方法

缺乏、安全感 2022-08-04 00:52 398阅读 0赞

首先安装 模块async

Center

测试代码:

call.js

  1. exports.fun1 = function (callback) {
  2. setTimeout(function(){
  3. console.log('方法1');
  4. callback('1');
  5. },1900);
  6. }
  7. exports.fun2 = function (callback) {
  8. setTimeout(function(){
  9. console.log('方法2');
  10. callback('2');
  11. },1700);
  12. }
  13. exports.fun3 = function (callback) {
  14. setTimeout(function(){
  15. console.log('方法3');
  16. callback('3');
  17. },1500);
  18. }

test.js:

  1. var async = require('async');
  2. var step = require('step');
  3. var call = require('./call');
  4. call.fun1(function(data){
  5. console.log(data);
  6. });
  7. call.fun2(function(data){
  8. console.log(data);
  9. });
  10. call.fun3(function(data){
  11. console.log(data);
  12. });
  13. console.log('正常执行的方法');

没有使用异步之前,我们调用三个方法期望的结果是:输出:方法1,方法2,方法3,但是node本身异步的机制决定了它不能像其他同步语言一样正常输出,结果输出是以时间花费最少的先执行:结果

Center 1

这就是node的异步机制,我们使用async同步模块进行再次测试

加入代码:

  1. function seriesFunc() {
  2. async.series([
  3. function(callback) {
  4. call.fun1(function(data){
  5. callback(null,data);
  6. });
  7. },
  8. function(callback) {
  9. call.fun2(function(data){
  10. callback(null,data);
  11. });
  12. },
  13. function(callback) {
  14. call.fun3(function(data){
  15. callback(null,data);
  16. });
  17. }],
  18. function(error,result) {
  19. if(error) {
  20. console.log("error: ",error,"msg: ",result);
  21. }
  22. else {
  23. console.log("方法执行完毕"+result);
  24. }
  25. }
  26. );
  27. }
  28. seriesFunc();

运行结果是否是我们期望的一次执行呢?

Center 2

结果果然是我们期待的一样,顺序进行执行,node异步的机制就决定了,响应速度快,做web开发的优势。

发表评论

表情:
评论列表 (有 0 条评论,398人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Vue.http同步执行

    Vue.http同步执行,超简单   解决方法: 网上查找Vue.http设置同步,但感觉好复杂,我这个方法很简单,不用修改太多代码,只需在合适的位置添加async和aw

    相关 同步方法同步

    > 从上一节中可以看到Java中多线程是不安全的,比如多人同时买票,票数会出现负数的情况;多人取钱,钱数会出现负数;多个线程操作同一个列表会出现多个线程覆盖列表统一地方的错误等

    相关 js保证代码同步执行

    js等待异步请求的结果后再执行后面的代码   解决方法: 可以使用关键字async  和await  结合使用来实现代码同步,例子如下: async   functio

    相关 ajax同步请求执行顺序

    我们都知道程序三种执行结构为:顺序、选择、循环 而并非所有程序都遵循这个规则,例如:ajax ajax是异步传输模式,当执行ajax里回调函数时代码会自动走向后台,js代码