美文网首页
js异步编程

js异步编程

作者: 晴天小猪L | 来源:发表于2017-10-26 14:21 被阅读0次

之前分析过js的运行机制,这里再介绍一下异步编程。

天生的异步操作,DOM的点击事件,AJAX获取数据,计时器等。两个函数,fn1,fn2,fn2要依靠fn1的结果运行,但是fn1耗时长,这时就要手动实现异步编程。

1.回调函数

使用setTimeout把fn1的执行变成异步操作,等fn1运行完,再执行fn2.

function fn1(callback){

    //fn1的执行语句

    setTimeout(function(){

        callback()

    },1000)

}

fn1(fn2)

这种方法的优点是易于理解,但是耦合性太高。

2.es6提供的Promise对象

每个异步任务返回一个Promise对象。

function fn1(){

    var def = $.Deferred();

   setTimeout(function(){

       //fn1的执行语句

       ded.resolve();

    },1000)

    return def.promise

}

fn1.then(fn2)

3.订阅-发布模式(观察者模式)

假设存在一个信息中心,一个任务完成后向信息中心发布一个信号,而其他任务可以从信息中心订阅这个信号,从而知道自己什么时候执行。

jQuery.subscribe('done', fn2)

function fn1(){

    setTimeout(function(){

        //fn1的执行代码

        jQuery.publish('done')

    },1000)

}

fn1运行结束后,向信息中心发布信号,而fn2由于先前订阅了这个信号,所以此时开始执行。

4.时间监听

事件被触发后,任务开始执行。

fn1.on('done', fn2)

function fn1(){

    setTimeout(function(){

        //fn1的执行代码

        fn1.trigger('done')

    },1000)

}

相关文章

  • 1-1作业参考答案

    模块一:函数式编程与 JS 异步编程、手写 Promise参考答案 简答题 一、谈谈你是如何理解 JS 异步编程的...

  • ES6 promise理解

    一、promise 是什么 1、Promise 是 JS 中解决异步编程的一种方案。 拓展:js中解决异步编程的...

  • 深入了解下Promise

    Promise 意义 Promise 的诞生与 Javascript 中异步编程息息相关,js 中异步编程主要指 ...

  • 01node.js

    01、模块 02、关注学习 03、Node.js 回调函数Node.js 异步编程的直接体现就是回调。异步编程依托...

  • 异步_ promise

    阮一峰 js的4种异步编程方法其他的一些异步编程方法 js 异步编程方法 一,回调函数 假定有两个函数f1和f2...

  • JavaScript事件循环

    js是一门单线程的语言,不可能进行多线程编程,异步编程就是多线程编程一种模式,但是我们经常讲到js的异步编程,其实...

  • js异步编程(updating)

    js 异步编程方式: Promise,generator/yield,async/await 回掉函数 js事件监...

  • JS异步编程(3)-Promise

    Promise 是 JS 异步编程中的重要概念,异步抽象处理对象,是目前比较流行的异步编程解决方案之一。主要解决了...

  • Promise

    1. Promise是什么 为解决异步编程,Common js 社区提出了Promise的规范,为异步编程提供了更...

  • Node学习(3)--异步编程

    Node.js 回调函数 Node.js 异步编程的直接体现就是回调。 异步编程依托于回调来实现,但不能说使用了回...

网友评论

      本文标题:js异步编程

      本文链接:https://www.haomeiwen.com/subject/sufqpxtx.html