第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

javascript中常用的異步解決方案

標簽:
JavaScript
  • 异步编程和同步编程的区别
    同步编程:后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的。
    异步编程:每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个
    任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。 异步解决方案之Ajax请求

    在浏览器端将数据发送给服务器端,而之后,不等这个请求完成,就会让出时间,去执行下面的代码。而等请求返回数据之后,再继续执行为请求所指定的回调方法。这个很常见。

    异步解决方案之回调函数
这三个函数可以看做是三个任务。
假设,f1最先执行,f2的执行要依赖于task1的运行结果,f3在任务队列里等待执行。
因为有了上面的假设,我们就可以将f2做为f1的回调函数,而f3自然执行即可。
// define functions
function f1(callback){
    console.log('f1')
    setTimeout(function(){
        console.log('f1 again')
        // some code
        callback();
    },1000);
}
function f2(){
    console.log('f2')
}
function f3(){
    console.log('f3')
}
// exec functions
f1(f2);
f3();
以上代码的执行结果:
f1
f3
f1 again
f2

回调函数方式,优点是代码的可理解性好,缺点是容易导致代码臃肿难看,
而且每个功能模块很容易耦合在一起,不易于拆分。维护起来比较困难,修改时牵一发动全身;

异步解决方案之事件监听
f2做为f1的回调函数
$(document).on('finish', f2);
function f1(){
    console.log('f1')
    setTimeout(function(){
        console.log('f1 again')
        // some code
        $(document).trigger('finish');
    },1000);
}
function f2(){
    console.log('f2')
}
function f3(){
    console.log('f3')
}
// exec functions
f1();
f3();
//执行结果
 f1
 f3
 f1 again
 f2

事件监听的方式,优点是让代码很容易模块化,各个模块之间可以用事件来做接口,每个事件可以指定多个处理函数;这样的缺点是如果一个事件依赖于多个事件的时候,处理起来比较麻烦。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消