Вызов определенной функции до и после каждого выполнения функции - PullRequest
0 голосов
/ 06 февраля 2019

Мне нужно вызывать определенную функцию до и после каждого выполнения функции

Например, у меня есть эти функции

function a() {
    // logic
}

function b() {
    // logic
}

function c() {
    // logic
}

, что я сейчас делаю, это

function a(){
    c();
    // logic
    c();
}

function b(){
    c();
    // logic
    c();
}

есть ли лучший способ сделать что-то вроде совета весной

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вы можете попробовать создать функцию-обертку, которая принимает эти две функции в качестве параметров и выполняет их в нужном вам порядке.

const wrapper = (logic, advice)=>{
advice();
let log  = logic()
advice()
return log
}

, затем вызываете ее как

wrapper(a,c)
wrapper (b,c);
0 голосов
/ 06 февраля 2019

Вы можете просто определить вспомогательную функцию «высшего порядка» следующим образом:

function wrapWith(baseFunc, otherFunc) {
    function wrapper() {
        otherFunc();
        baseFunc();
        otherFunc();
    }
    return wrapper;
}

Затем просто определите a = wrapWith(a, c), b = wrapWith(b, c) и т. Д. (И если вам иногда потребуется «развернутый»"a и b, просто назначьте упакованные версии новым переменным, а не перезаписывайте a и b.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...