摘要:如何編寫回調(diào)函數(shù)回調(diào)函數(shù)其實就是將某個特定接口的實現(xiàn)作為參數(shù)傳入目標(biāo)對象,讓目標(biāo)對象在適當(dāng)?shù)臅r候?qū)R進(jìn)行調(diào)用。是測試的主體,在函數(shù)中,產(chǎn)生一個對象,然后調(diào)用其方法,同時傳入一個匿名類實現(xiàn)了接口。
如何編寫回調(diào)函數(shù)?
回調(diào)函數(shù)其實就是將某個特定接口的實現(xiàn)作為參數(shù)傳入目標(biāo)對象,讓目標(biāo)對象在適當(dāng)?shù)臅r候?qū)R進(jìn)行調(diào)用。
Response接口包含了兩個方法:success和fail,分別需要在請求成功和失敗時調(diào)用,但是具體這兩個方法需要做寫什么事情,這在接口的定義中是無從知道的,因為這是根據(jù)每個發(fā)送請求的主體的具體情況而確定的。
Request是發(fā)送請求類,是執(zhí)行人物的主體,在其send(Response response)方法中,會接受一個Response接口的實現(xiàn),并在請求完成后,根據(jù)請求的結(jié)果調(diào)用Response中相應(yīng)的方法。
CallbackSample是測試的主體,在main函數(shù)中,產(chǎn)生一個Request對象,然后調(diào)用其send方法,同時傳入一個匿名類實現(xiàn)了Response接口。
java/** * Created by findingsea on 3/11/15. */ public interface Response { void success(); void fail(); }
java/** * Created by findingsea on 3/11/15. */ public class Request { public void send(Response response) { System.out.println("Send Request"); response.fail(); } }
java/** * Created by findingsea on 3/11/15. */ public class CallbackSample { public static void main(String[] args) { Request request = new Request(); request.send(new Response() { @Override public void success() { System.out.println("Request Success"); } @Override public void fail() { System.out.println("Request Fail"); } }); } }
以下是輸出:
javaSend Request Request Fail
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/64271.html
摘要:事件循環(huán)從回調(diào)隊列中獲取并將其推入調(diào)用堆棧。執(zhí)行從調(diào)用堆棧中移除從調(diào)用堆棧中移除快速回顧值得注意的是,指定了事件循環(huán)應(yīng)該如何工作,這意味著在技術(shù)上它屬于引擎的職責(zé)范圍,不再僅僅扮演宿主環(huán)境的角色。 此篇是 JavaScript是如何工作的第四篇,其它三篇可以看這里: JavaScript是如何工作的:引擎,運行時和調(diào)用堆棧的概述! JavaScript是如何工作的:深入V8引擎&編寫...
摘要:一個簡單的轉(zhuǎn)換為的例子我們調(diào)用函數(shù)返回一個的實例,在實例化的過程中進(jìn)行文件的讀取,當(dāng)文件讀取的回調(diào)觸發(fā)式,進(jìn)行狀態(tài)的變更,或者狀態(tài)的變更我們使用來監(jiān)聽,第一個回調(diào)為的處理,第二個回調(diào)為的處理。 2018年已經(jīng)到了5月份,node的4.x版本也已經(jīng)停止了維護(hù) 我司的某個服務(wù)也已經(jīng)切到了8.x,目前正在做koa2.x的遷移 將之前的generator全部替換為async 但是,在替換...
摘要:編寫異步代碼可能是一種不同的體驗,尤其是對異步控制流而言?;卣{(diào)函數(shù)的準(zhǔn)則在編寫異步代碼時,要記住的第一個規(guī)則是在定義回調(diào)時不要濫用閉包。為回調(diào)創(chuàng)建命名函數(shù),避免使用閉包,并將中間結(jié)果作為參數(shù)傳遞。 本系列文章為《Node.js Design Patterns Second Edition》的原文翻譯和讀書筆記,在GitHub連載更新,同步翻譯版鏈接。 歡迎關(guān)注我的專欄,之后的博文將在專...
摘要:只要在調(diào)用異步函數(shù)時設(shè)置一個或多個回調(diào)函數(shù),函數(shù)就會在完成時自動調(diào)用回調(diào)函數(shù)。要解決的問題是,如何將回調(diào)方法的參數(shù)從回調(diào)方法中傳遞出來,讓它可以像同步函數(shù)的返回結(jié)果一樣,在回調(diào)函數(shù)以外的控制范圍內(nèi),可以傳遞和復(fù)用。 摘要: 我們知道 JavaScript 自從有了 Generator 之后,就有了各種基于 Generator 封裝的協(xié)程。其中 hprose 中封裝的 Promise 和...
摘要:服務(wù)器每收到一條請求,都會用新的和對象觸發(fā)回調(diào)函數(shù)。但不會在回調(diào)函數(shù)被觸發(fā)之前開始對請求體的解析。在調(diào)用完請求回調(diào)函數(shù)之后,就要由你負(fù)責(zé)用方法結(jié)束響應(yīng)了見下圖。比較常見的情況是當(dāng)所請求的資源不存在時返回一個狀態(tài)碼。 前言 本文將通過一個todo list前后端分離的小項目來講解如何用Node創(chuàng)建符合RESTful風(fēng)格的API接口。 創(chuàng)建HTTP服務(wù)器 我們先來了解下如何用Node創(chuàng)建H...
閱讀 1811·2021-11-15 11:37
閱讀 3562·2021-09-28 09:44
閱讀 1820·2021-09-07 10:15
閱讀 2962·2021-09-03 10:39
閱讀 2826·2019-08-29 13:20
閱讀 1442·2019-08-29 12:51
閱讀 2341·2019-08-26 13:44
閱讀 2266·2019-08-23 18:02