Работайте быстрее с Neo-async и NodeJs

Привет, ребята,

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

Таким образом, в основном это руководство предназначено для сравнения неоасинхронных и ваших обычных асинхронных вызовов и для того, чтобы показать, какой из них быстрее и надежнее.

Считается, что Neo-Async используется в качестве замены Async, он почти полностью покрывает его функциональность и работает быстрее. — Неоасинхронный

Neo-async имеет несколько функций, и все они великолепны, но мне больше всего нравятся Waterfall, Auto и Parallel.

Давайте погрузимся прямо в.

Чтобы использовать Neo-async, вам нужно будет установить его.

npm install --save neo-async

затем использовать его в проекте довольно просто, все, что вам нужно сделать, это импортировать его в нужный вам файл, используя:

var async = require('neo-async');
теперь, сделав это, вы получите доступ ко всем неоасинхронным функциям.

Например,

Авто:

var async = require('neo-async');
let user, compared;
async.auto({
    users: async (callback) => {
        try {
            user = await Users.findOne({ email: data.email });
            console.log(user);
            if (user.length < 1) {
                return ResponseService.json(400, res, "Invalid login details")
            } else {
                callback(null, user);
            }
        } catch (err) {
            return ResponseService.json(400, res, "Invalid login details")
        }
    },
    comparePassword: ['users', async (results, callback) => {
        console.log(results);
        try {
            compared = await Users.comparePassword(data.password, results.users);
            console.log(compared)
            if (!compared) {
                return ResponseService.json(400, res, "Invalid login details")
            } else {
                callback(null, compared);
            }
        } catch (err) {
            return ResponseService.json(403, res, "Forbidden")
        }
    }],
    tokenGenerator: ['users', 'comparePassword', (results, callback) => {
        const token = TokenService.generateToken(user);
        const sql = "UPDATE `users` SET `access_token` = ?, `last_logged_in` = ?, `ipaddress` = ? WHERE `email` = ?";
        Users.query(sql, [token, new Date(), requestIp.getClientIp(req), user.email], (err, updatedUser) => {
            if (err) {
                console.log(err);
                callback(err);
            } else {
                console.log(updatedUser);
                callback(null, updatedUser);
            }
        });
    }]
}, (err, results) => {
    if (err) {
        return ResponseService.json(400, res, "Something went wrong");
    } else {
        return ResponseService.json(200, res, "Successfully signed in", results.tokenGenerator[0]);
    }
});

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

Чтобы сделать выше без неоасинхронный или асинхронный, вам понадобятся вложенные коды (то есть код внутри кода), которые иногда могут быть грязными и медленными.

Но неоасинхронный украсил и ускорил процесс.

Ниже наглядная иллюстрация разницы во времени отклика между неоасинхронным и обычным вложенным асинхронным вложенным кодом.

1_QIp7RH76m4_JIRpAygUdyw.png 1_xA0DahjqT916OmqfRHm--A.png

На приведенных выше рисунках показана разница во времени отклика между наличием неоасинхронности и отсутствием неоасинхронности. Мы заметим, что тот, у которого есть неоасинхронизация (тот, что слева), имеет время отклика 1,53 с, а время отклика без него — 2,67 с. Это может показаться не таким уж большим, но когда запрос отправляется серверу, время доставки ответа сильно влияет на взаимодействие с пользователем.

Представьте себе использование без кэширования данных, и это все еще быстро, представьте, что произойдет, если вы кешируете свои данные и одновременно используете неоасинхронность. Это сногсшибательно

Спасибо за чтение.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *