From c058fa0fb22dc40ef0225b21a97578cddd0aaffa Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:05 +0100 Subject: unslug ru: move --- files/ru/glossary/callback_function/index.html | 70 ++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 files/ru/glossary/callback_function/index.html (limited to 'files/ru/glossary/callback_function') diff --git a/files/ru/glossary/callback_function/index.html b/files/ru/glossary/callback_function/index.html new file mode 100644 index 0000000000..b1433d4ee8 --- /dev/null +++ b/files/ru/glossary/callback_function/index.html @@ -0,0 +1,70 @@ +--- +title: Функция обратного вызова +slug: Словарь/функция_обратного_вызова +tags: + - Callback + - Функция обратного вызова +translation_of: Glossary/Callback_function +--- +

Функция обратного вызова - это функция, переданная в другую функцию в качестве аргумента, которая затем вызывается по завершению какого-либо действия.

+ +

Вот краткий пример:

+ +
function greeting(name) {
+  alert('Hello ' + name);
+}
+
+function processUserInput(callback) {
+  var name = prompt('Please enter your name.');
+  callback(name);
+}
+
+processUserInput(greeting);
+ +

Выше приведен пример синхронного обратного вызова, поскольку функция processUserInput выполняется синхронно.

+ +

Функции обратного вызова часто используются для продолжения выполнения кода после завершения асинхронной операции - они называются асинхронными обратными вызовами.

+ +
async function pageLoader(callback) {
+  const data = await fetch('/ru/docs/Словарь/функция_обратного_вызова')
+  callback(data)
+}
+
+function onPageLoadingFinished(pageData) {
+  console.log('Page was sucessfully loaded!')
+  console.log('Response:')
+  console.log(pageData)
+}
+
+pageLoader(onPageLoadingFinished)
+
+ +

Вот еще один пример асинхронного обратного вызова: maps-example.html (живой пример). Он использует Google Maps API и Geolocation API для отображения карты текущего местоположения вашего устройства.

+ +
// maps-example.html
+// Вызов асинхронной функции getCurrentPosition
+// с передачей callback функции принимающей координаты
+// в качестве параметра
+navigator.geolocation.getCurrentPosition(function(position) {
+  var latlng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
+  var myOptions = {
+    zoom: 8,
+    center: latlng,
+    mapTypeId: google.maps.MapTypeId.TERRAIN,
+    disableDefaultUI: true
+  }
+  var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
+});
+
+ +

Поскольку получение координат устройства из его GPS является асинхронным (мы точно не знаем, когда данные будут возвращены), метод Geolocation.getCurrentPosition() принимает анонимную функцию обратного вызова в качестве параметра, которая получает найденые данные координат. Эта функция выполняется только по возвращению данных координат.

+ +

Больше информации

+ +

Основное

+ + -- cgit v1.2.3-54-g00ecf