Как использовать функцию отражения в модуле async JavaScript

Отражение

Функция Reflect гарантирует, что функция возвращает результат даже при возникновении ошибки.

Эта функция обертывает целевую функцию и возвращает объект либо со значением value , либо со свойством error .

Использование

В следующем примере показано, как можно использовать функцию отражения .

 импортировать отражение из 'async/reflection'; var fs = require ('fs'); //Функция обратного вызоваfunction print (err, res) {//Доступ к данным if (res) {if (res.value! = Undefined) {console.log (res.value);  } еще {console.log (res.error);  }} еще {console.log (ошибка);  }}//Рабочая функцияfunction helloWorld (callback) {callback (null, "Hello World!");}//Неправильная функцияfunction readFile (callback, fileName) {done = false;  попробуйте {fs.readFile (fileName, 'utf8', function (err, data) {if (err == null) {callback (null, data); done = true;} else {callback (err)}});  } catch (err) {callback (err)}}//Использование отражения var hello = reflection (helloWorld); var fileReader =lect (readFile);//Вызов функций hello (print); fileReader (print, '/educative.txt')  ; 

Эта программа демонстрирует поведение отразить с ошибочным вызовом функции и правильным вызовом.

Правильная функция helloWorld просто возвращает значение Hello World на обратный вызов. Ошибочная функция readFile пытается прочитать данные из несуществующего текстового файла. Когда он не может этого сделать, он вызывает обратный вызов с ошибкой.

По сути, первый параметр в обратном вызове — это ошибка, а второй — результирующее значение (если есть). Если ошибки нет, обратный вызов вызывается с null в качестве первого аргумента, за которым следует любое значение результата перед ним. С другой стороны, если возникает ошибка, пользователи могут вызвать обратный вызов с ненулевым первым параметром.

Внутри обратного вызова первый параметр всегда null , даже если был передан ненулевой первый параметр. Это потому, что все передается внутри объекта результата (названного как res в функции обратного вызова этого примера). Объект результата имеет элемент error и value .. Элемент error содержит значение первого аргумента в вызове обратного вызова, а элемент value содержит второй аргумент.

Оцените статью
nanomode.ru
Добавить комментарий