CALLBACK LÀ GÌ

  -  
Photo by Adi Goldstein on UnsplashẢnh của Adi Goldstein trên Unsplash

Lời nói đầu

Callbacks internalizing vô cùng quan trọng. Đó là 1 khái niệm trong một trong những ngôn ngữ lập trình bao hàm c, c #, đỏ và rebol, lua, python với javascript.Tuy nhiên, vào javascript, nó là nền tảng như ngôn ngữ.Lệnh Callback là 1 trong những hàm được truyền bên dưới dạng đối số của hàm và được hotline tại một trong những điểm vào hàm. Các lệnh Callback được sử dụng để đóng gói xúc tích sẽ được triển khai trong hàm điện thoại tư vấn thường chứa xúc tích khác có thể chung với xúc tích lập trình của bọn chúng ta.Rõ ràng, tất cả sự lầm lẫn này đi kèm theo với vấn đề học một ngôn ngữ lập trình mới. Những người mới bước đầu sẽ thường gặp phải những lập trình viên có kinh nghiệm đưa ra đông đảo điều buộc phải làm và tránh việc làm, chỉ trích những người mới làm quen cùng với những nghành nghề mà họ yêu cầu tránh. Trong những khái niệm mà chúng tôi được khuyên nhủ nên áp dụng một cách tiết kiệm là Callback.Bạn có thể đã gặp phải địa ngục Callback. Khu vực mà bọn họ được mang lại là đề xuất cảnh giác cùng với Callbacks cơ mà tin tôi đi, bạn cần phải biết các lệnh Callbacks trước khi hoàn toàn có thể biết phương pháp tránh phần "quái quỷ" của nó. Sử dụng những tính năng JavaScript hiện đại như async / await là một số giải pháp. Tuy nhiên, mô-đun hóa mã hoàn toàn có thể cho phép họ thành thành thạo trong việc lập trình với các lệnh Callback một giải pháp hiệu quả. Tuy nhiên, để trở thành một kỹ sư JavaScript thành công, fan ta yêu cầu thông thạo các khái niệm lập trình cốt lõi của nó, một trong các đó là Callback.

Bạn đang xem: Callback là gì

Callback có thể làm gì?

Hiểu được callback là gì là rất đặc biệt quan trọng trong JavaScript. Những lệnh callback cung ứng cho shop chúng tôi khả năng chất nhận được người dùng khả năng đóng gói lô ghích nghiệp vụ cụ thể cho yêu thương cầu của họ để trở thành 1 phần của quy trình thực thi mã. Ví dụ, hầu hết các cách thức mảng (ánh xạ, bộ lọc và giảm) sử dụng những hàm callback. Trong đoạn mã dưới đây, bọn họ đã truyền một hàm nhấn x cùng lặp qua tất cả các cực hiếm trong một mảng với xuất ra một mảng khác. Họ đã truyền hàm này (x = x * 2) được hotline nội bộ tại một số điểm trong hàm array.map.const array = <1, 4, 9, 16>;// pass a function to lớn mapconst map = array.map(x => x * 2);Rất những hàm đối tượng người sử dụng cốt lõi của JavaScript thực hiện callback. Khi cách xử trí các đối tượng người tiêu dùng trên tư liệu web, hàm addEventListener của các bộ phận html vào document trình coi sóc sẽ callback để xử lý logic trang web của shop chúng tôi để thêm trình cách xử trí sự khiếu nại vào các thành phần khác nhau mà chúng tôi có trên website của mình.

Xem thêm: Bảo Trì Cập Nhật Phiên Bản 12, Liên Minh Bảo Trì Hôm Nay Đến Mấy Giờ

Như họ đã biết, chúng ta có thể thực hiện nay các buổi giao lưu của mình trong vanilla JS. Nút gửi dưới thêm bạn nghe vào nút gửi để xem các sự kiện nhấp chuột. Shop chúng tôi đã chuyển hàm watchSubmit làm lệnh call lại của bọn chúng tôi.// web api interface for adding sự kiện handlerselement.addEventListener(event, callback, useCapture)//Vanilla JavaScriptfunction watchSubmit()const submit = document.getELementById("submit");const targetElem = document.getElementById("startupRegistered");console.log(targetElem.value);const targetElem2 = document.getElementById("startupNotRegistered");console.log(targetElem2.value);submit.addEventListener("click", watchSubmit());//jquery version$("submit").html("Click me").on("click", watchSubmit());Các lệnh callback được sử dụng để triển khai logic tùy chỉnh cấu hình được chuyển mang lại một hàm trong những số ấy hàm là bình thường theo một nghĩa nào đó và yêu cầu lệnh callback cung cấp quá trình cách xử lý duy duy nhất trong hàm kia tại thời khắc gọi.

Xem thêm: Chuẩn Uefi Và Legacy Là Gì, Uefi, Legacy, Gpt, Mbr Và Những Điều Cần Lưu Ý

Máy nhà web giả thuyết

Hãy coi một ví dụ khác về callback. Một sever web mang định tuy thế đây thực sự là ý tưởng dễ dàng hóa về cách chúng ta cũng có thể phát triển một sever web. Hãy ban đầu với cỗ định con đường và trình xử lý.var router = ;router.get = function (data, callback) callback(200, data);router.notFound = function (data, callback) callback(404, "message": "not found" )var handler = "get": router.get,"notFound": router.notFoundChúng tôi cần một bộ định tuyến xử lý mặc định router.notFound trong trường hợp các bạn đang nỗ lực làm cho cửa hàng chúng tôi mệt mỏi. Kiếm tìm kiếm phần lớn gì không tồn tại. Hiện giờ bên bên dưới là nơi họ sẽ điện thoại tư vấn hàm callback bên trong hàm serveRequest.function serveRequest(req, res) var data = "query": req.query,"body": req.body;var chosenhandler = handler === undefined ? handler.notFound:handler;chosenhandler(data, function (statusCode, payload) //Do some processingres.query = req.query;res.status = statusCode;);return res;var req = "query": "firstname=thankgod","pathname": "get"const res = serveRequest(req, );console.log(res);Bây giờ đồng hồ nếu họ gửi một yêu ước đến cỗ định đường của mình, đối tượng người tiêu dùng yêu ước của họ có một tên đường dẫn thay đổi cho chúng ta biết băng thông mà bọn họ muốn truy vấn trong cỗ định con đường của mình. Khi chúng ta gọi một đường dẫn, trình cách xử trí chosenhandler của bộ định con đường sẽ định tuyến bọn họ đến đúng đường dẫn sẽ dấn lệnh callack để xử lý những yêu cầu của chúng ta.

Quản lý thanh toán giao dịch với Callback

Hãy chú ý một ví dụ phức tạp hơn. Đây là một phương thức của một đối tượng người dùng giao dịch vào Deno DSO. (Tôi là hiệp tác viên). Nó được viết bằng TypeScript. TypeScript là 1 trong những đường cú pháp đến JavaScript cung ứng sự bình yên cho kiểu thời hạn biên dịch. TypeScript được biên dịch sang trọng JavaScript. Cách thức này gửi một lệnh gọi lại đến một thiết bị khách cơ sở tài liệu dso.client nhấn lệnh call lại với trong thủ tục / hàm cơ sở tài liệu sẽ giải pháp xử lý một giao dịch.static async transaction( processor: (transaction: Transaction) => Promise, ): Promise return (await dso.client.transaction(async (conn) => const trans = new Transaction(conn); return await processor(trans); )) as T; Đây là cách thức database transaction. để ý nơi liên kết được gửi đến bộ xử lý, sau đó sẽ đưa nó đến đối tượng giao dịch thực hiện nó để làm chủ các thanh toán giao dịch của chúng ta.`/** * Execute a transaction process, & the transaction successfully * returns the return value of the transaction process *