摘要:話不多說,同樣直接上栗子執(zhí)行完成,進行第二步操作執(zhí)行結果為進行第二步操作執(zhí)行完成因為是異步回調函數(shù),所以是不需要先等函數(shù)執(zhí)行完成后,才能執(zhí)行進行第二步操作
Hi,小伙伴們,今天來和大家談一談有關javascript 中回調的問題,首先回調函數(shù)分為兩種
1、同步回調函數(shù)(普通的回調函數(shù))
2、異步回調函數(shù)
其中同步回調函數(shù)是要等到回調函數(shù)都執(zhí)行完成后才能進行接下來的操作,也就是說是阻塞式運行。
話不多說,直接上栗子
function waitFive(callback){ var currentDate = new Date(); var pus = 0; while(pus<5000){ var date = new Date(); pus = date - currentDate; } callback("執(zhí)行完成"); } waitFive(function(msg){console.log(msg);}); console.log("進行第二步操作;"); **執(zhí)行結果為:** 執(zhí)行完成 進行第二步操作
因為是同步回調函數(shù),所以是要先等waitFive函數(shù)執(zhí)行完成后,才能執(zhí)行
console.log("進行第二步操作;");
而異步回調函數(shù)不需要等到回調函數(shù)都執(zhí)行完成后才能進行接下來的操作,也就是說是非阻塞式運行。
話不多說,同樣直接上栗子
function waitFive(callback){ setTimeout(function(callback){ callback("執(zhí)行完成"); },5000); } waitFive(function(msg){console.log(msg);}); console.log("進行第二步操作;"); **執(zhí)行結果為:** 進行第二步操作 執(zhí)行完成
因為是異步回調函數(shù),所以是不需要先等waitFive函數(shù)執(zhí)行完成后,才能執(zhí)行
console.log("進行第二步操作;");
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://systransis.cn/yun/86546.html
摘要:如果沒有其他異步任務要處理比如到期的定時器,會一直停留在這個階段,等待請求返回結果。執(zhí)行的執(zhí)行事件關閉請求的,例如事件循環(huán)的每一次循環(huán)都需要依次經(jīng)過上述的階段。因此,才會早于執(zhí)行。 showImg(https://segmentfault.com/img/bVbnY76); 概念 同步任務(Synchronous) 在主線程上排隊執(zhí)行的任務,只有前一個任務執(zhí)行完畢,才能執(zhí)行后一個任務 ...
摘要:我們可以進行適當?shù)母倪M,把回調函數(shù)寫到外面即使是改寫成這樣,代碼還是不夠直觀,但是如果有了對象,代碼就可以寫得非常清晰,一目了然,請看這樣函數(shù)就不用寫在的回調中了目前的標準中還未支持對象,那么我們就自己動手,豐衣足食吧。 本文同步自我得博客:http://www.joeray61.com 很多做前端的朋友應該都聽說過Promise(或者Deferred)對象,今天我就講一下我對Prom...
摘要:以多線程的形式,允許單個任務分成不同的部分進行運行。提供協(xié)調機制,一方面防止進程之間和線程之間產(chǎn)生沖突,另一方面允許進程之間和線程之間共享資源。主線程會不斷的重復上訴過程。 眾所周知,js是單線程的,說到線程,我們首先來仔細辨析一下線程和進程的知識。 一、進程與線程 阮一峰老師的一篇文章寫的很好 cpu會給當前進程分配資源,進程是資源分配的最小單位,進程的資源會分配給線程使用,線程是C...
摘要:在語言中,函數(shù)替換的不是表達式,而是多參數(shù)函數(shù),將其替換成一個只接受回調函數(shù)作為參數(shù)的單參數(shù)函數(shù)。為什么里面必須使用函數(shù)呢,因為我們需要確保傳入的值只有一個,利用其回調函數(shù),來進行遞歸自動控制函數(shù)的流程,接收和交還程序的執(zhí)行權 前言 這篇文章主要是梳理一下自己對阮一峰大神寫的關于async/await文章,有寫得不對的地方以及理解得不對的地方,各位大佬請指錯! 對比 簡單對比傳統(tǒng)異步,...
摘要:如果有錯誤,則到的第二個回調函數(shù)中,對錯誤進行處理。假設第一個的第一個回調沒有返回一個對象,那么第二個的調用者還是原來的對象,只不過其的值變成了第一個中第一個回調函數(shù)的返回值。 ES6標準出爐之前,一個幽靈,回調的幽靈,游蕩在JavaScript世界。 正所謂: 世界本沒有回調,寫的人多了,也就有了})})})})})。 Promise的興起,是因為異步方法調用中,往往會出現(xiàn)回調函數(shù)一...
閱讀 3085·2021-11-24 11:14
閱讀 3530·2021-11-22 15:22
閱讀 3217·2021-09-27 13:36
閱讀 728·2021-08-31 14:29
閱讀 1338·2019-08-30 15:55
閱讀 1772·2019-08-29 17:29
閱讀 1156·2019-08-29 16:24
閱讀 2423·2019-08-26 13:48