import {curry} from 'ramda';
export const subscribe = curry((target: EventTarget, eventName: string, handler: EventListenerOrEventListenerObject): (() => void) => {
target.addEventListener(eventName, handler);
return () => target.removeEventListener(eventName, handler);
});
export const subscribe = (target, eventName, handler) => {
target.addEventListener(eventName, handler);
return () => target.removeEventListener(eventName, handler);
};
const curry = (i) => (e) => changeCountry(e, i);
const unsubscribe = subscribe(button, 'click', curry(i));
// когда подписка больше не нужна, просто вызываем unsubscribe()
const original = globalThis.libraryVariable; // сохраняем предыдущее значение заменяемой переменной
globalThis.libraryVariable = libraryExport; // перезаписываем нашей либой
libraryExport.noConflict = () => {
globalThis.libraryVariable = original; // восстанавливаем сохраненное значение
return libraryExport; // возвращаем нашу либу
};
где:function insertAfter(source, search, insert) {
const p = source.indexOf(search);
return (p === -1
? source.slice()
: source.slice(0, p + 1).concat(insert, source.slice(p + 1))
);
}
console.log(insertAfter('Ivanov I.Petrov P. Sidorov S.', '.', '<br>'));
// а еще кроме строк можно и массивы той же функцией обрабатывать
console.log(insertAfter(['Ivanov I', '.', 'Petrov P.', ' Sidorov S.'], '.', '<br>'));
const Second = ({array}) => {
return (...)
}
аналогично этому:const Second = (props) => {
const {array} = props;
return (...)
}
что в свою очередь можно привести к этому:const Second = (props) => {
const array = props.array;
return (...)
}
но с той лишь разницей, что в оригинальном примере нет отдельной переменной props const mysql = require('some-mysql-library');
const app = express();
// ...
function getUserFromMysqlMiddleware(req, res, next) {
mysql.query('SELECT * FROM `users` WHERE `id`=? LIMIT 1', [req.query.userid]).then(([user]) => {
if(!user) {
const err = new Error('Access denied');
err.status = 403;
return next(err);
}
req.user = user;
next();
}).catch(next);
}
app.post('/some/route', getUserFromMysqlMiddleware, (req, res) => {
// Ваш код с гарантированным наличием req.user
});
app.put('/some/route', getUserFromMysqlMiddleware, (req, res) => {
// Ваш код с гарантированным наличием req.user
});
const arr = []; // создали массив
arr.push = function() { // перезаписываем конкретно его push
Array.prototype.push.apply(this, arguments); // вызвали оригинальный push со всеми аргументами
// тут делаем еще что-то
};
function genPDF() {
const blocks = document.querySelectorAll('.block');
const doc = new jsPDF();
return Promise.all(Array.prototype.map.call(blocks, el => new Promise(resolve => {
html2canvas(el, {
onrendered(canvas) {
const img = canvas.toDataURL("image/png");
doc.addImage(img, 'JPEG', 20, 20);
resolve();
}
});
}))).then(() => {
doc.save('test.pdf');
});
}