Автор оригинала: Temidayo Ajisebutu.
Привет, ребята,
Это поворот из обычного учебного пособия, который я бы нормально написал, это произошло из-за моей способности всегда хотеть узнать больше, и это помогло мне до сих пор.
Таким образом, в настоящее время этот учебник состоит в том, чтобы сравнить Neo Async и ваши нормально асинхронные звонки и показать, что быстрее и надежнее.
Считается, что Neo-Async используется в качестве падения замены Async, она почти полностью охватывает его функциональность и проходит быстрее. – Neo-async
Neo-Async имеет несколько функций, которые все велики, но мои любимые – это водопад, авто и параллель.
Давайте погрузиться прямо в.
Использовать Neo-Async, вам придется установить его
NPM установить –save neo async
Затем, используя его в проекте, довольно легко, все, что вам нужно сделать, это импортировать его в файл, который вам нужно, используя:
var ('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]); } });
Приведенный выше код является основным процессом для входа в систему, который включает в себя проверку, существует ли электронная почта, проверяя, является ли Hahhed Password Drealge, затем генерируя токен для сеанса входа в систему и обновлять DB с токеном доступа и последним вошедшим в систему пользователя.
Сделать вышеизложенное с OUT Neo-async Или Async вы должны были бы иметь вложенные коды (то есть код внутри кода), который иногда может быть грязным и медленным.
Но Neo-async Украшены и сделали процесс быстрее.
Ниже приведен живописный вид на разницу в времени отклика между неокосинкой и нормальными вложенными async вложенными кодами.
Вышеуказанные изображения показывают разницу в времени отклика между Neo async и не имея Neo async. Мы заметим, что тот, который с Neo-async (тот, кто слева) имеет время отклика 1,53, которое тот, который без него имеет время отклика 2,67. Это может не похоже на много времени, но когда запрос отправляется на бэкэнду, время доставки ответа значительно влияет на пользовательский опыт.
Представьте себе, используя без кэширования данных, и все еще быстро, представьте, что произойдет, когда вы кэшируете свои данные и используете Neo Async одновременно. Это разум дует
Спасибо за чтение.