`
ghyghoo8
  • 浏览: 193094 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

初学异步编程

    博客分类:
  • js
阅读更多
看了 司徒正美 的《javascript 异步编程》的博文,上面的 Deferred 类,初看写的晦涩~

总结了一下,关键是将function 当成可以传递的对象看待,利用好 arguments 将队列中的函数联系起来。

基本流程:将要执行的函数放到一个数组中,组成队列。执行的时候,shit数组中元素,进行执行,将 function对象 执行后的返回值 及下一个function对象 与 其执行所需参数 组装成一个回调包,放入执行函数中,异常,着进入另一个执行函数。


其中的 paiallel 及loop机制 待研究。贴上领悟后的代码



 var array = [2,3,4,1,2,3,4,234,32,213,1,23,123,11,23,1123,123,333,1];
    var arr = new Array();
    /**
     * run
     */
    (function(arg) {
        var u = array.shift() || false;
        var args=[arg,u,arguments.callee];

        if(arguments.length>1){
            args=Array.slice.call(arguments);
            args[1]=u;
        }
        if (u) {
            arg.apply(null,args);
        } else {
            console.log(arr);
        }
    })(function(fn,u,main) {
        var _u = u,_fn = fn;
        window.setTimeout(function() {
            arr.push(_u);
            console.log(_u);
            main.call(main,fn,u,main);
        }, _u);
    });


1
1
分享到:
评论

相关推荐

    Twisted与异步编程入门

    Twisted提供了高度抽象的接口,使得异步编程更为简洁,但这也增加了初学者的学习难度。 异步编程的优势在于,它可以在单线程环境中实现任务的并发执行,无需等待某个任务完成即可开始另一个,提高了系统的响应性和...

    c#线程同步与异步编程

    异步编程则允许程序在等待某个操作完成时,无需阻塞当前线程,从而提高程序的响应性和效率。C#从.NET Framework 4.0开始引入了异步编程模型(async/await),使得编写异步代码变得更加简洁。`async`关键字定义了一个...

    C#初学者编程实例

    C#的异步编程模型主要基于async和await关键字,使得长耗时操作(如网络请求)可以在不阻塞主线程的情况下进行,提高程序的响应性。异步编程是现代应用开发中不可或缺的一部分。 六、Windows Forms和WPF 对于桌面...

    Jeffrey Richter 大师名作 异步编程模型实现

    总的来说,Jeffrey Richter 的这篇文章对理解和应用异步编程模型有极大的帮助,无论是对于初学者还是经验丰富的开发者,都能从中受益。异步编程不仅可以提高程序的效率,还能改善用户界面的响应性,是现代软件开发不...

    150个C#初学者编程实例.rar

    11. **异步编程**:C#的async/await关键字使得异步编程更加简洁,实例将演示如何利用这些特性来优化程序性能。 12. **网络编程**:通过HttpClient进行HTTP请求,或者使用Socket进行低级别网络通信,实例将教会你...

    JavaScript 异步编程:基本指南.docx

    JavaScript中的异步编程是开发高性能应用的关键技巧。它允许代码在不影响主线程执行的情况下处理耗时的操作,如网络请求、数据库交互或文件操作。本文将深入讲解JavaScript异步编程的基础和高级概念,帮助开发者理解...

    100个C#初学者编程实例

    10. **异步编程**:通过async和await关键字,C#支持非阻塞式的异步操作,这对于提高UI响应速度和优化资源利用至关重要。 11. **泛型**:泛型允许创建可重用的类型,可以用于定义方法、接口和类,以提高代码的灵活性...

    150个C#初学者编程实例

    9. **异步编程** - async/await关键字:实现非阻塞I/O操作,提高应用程序性能。 - Task和Task<T>:异步操作的基础。 10. **Windows Forms与WPF** - Windows Forms:构建桌面应用的UI框架,包括控件、布局和事件...

    前端开发、JavaScript、asyncawait、异步编程、异常处理,学习JavaScript异步编程

    JavaScript中的异步编程是Web前端开发的核心技能,而async/await是现代JavaScript处理异步操作的一种优雅方式。这个模式使得代码更加清晰、易于理解和维护,尤其对于初学者来说,掌握async/await能大大提高开发效率...

    Node.js面试笔试题及答案涵盖异步编程与性能优化

    内容概要:文章包含了Node.js基础知识、异步编程、模块与文件系统、网络与服务器以及性能优化与实践五大类面试笔试题目,通过这些问题深入了解了Node.js非阻塞、事件驱动的特点,事件循环的工作机制,require与...

    基于C#的 简单的t cp异步编程 聊天小工具

    本项目“基于C#的简单的TCP异步编程聊天小工具”是针对初学者设计的一个实践案例,旨在帮助开发者了解如何在C#环境下实现一个简单的TCP聊天应用,尤其注重异步编程的应用。 TCP异步编程在C#中主要通过`System.Net....

    100C#初学者编程实例

    Lambda表达式简化了匿名函数的编写,LINQ则提供了强大的查询数据集的能力,而异步编程则让开发者能编写高性能的并发代码,避免阻塞主线程。 在实际项目中,版本控制工具如Git也是必备技能,它能够帮助团队协作和...

    C#初学者编程实例 超多实例

    12. **异步编程**:理解异步编程的重要性,如async和await关键字的应用。 通过这些实例,初学者可以逐步建立起对C#编程的全面认识。每个实例都是一次实践的机会,通过解决实际问题,能够加深对理论知识的理解,提高...

Global site tag (gtag.js) - Google Analytics