Расширьте Map.set, чтобы сохранить новую запись также на диске - PullRequest
0 голосов
/ 09 февраля 2019

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

Я стараюсь не изменять производственный код для этого.Я хочу сохранить на диск новую запись при вызове map.set(...).Код ниже, чтобы понять, что я хочу.

// developing code that will be commented out in production
Map.prototype.set=()=>{
  // new functionality save to disk with something like fs.writeFileSync()
  return new Map.set() // keep the original functionality
}

// production code
const map = new Map().set('a',1)

1 Ответ

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

Если я не ошибаюсь:

'use strict';

const oldSet = Map.prototype.set;

Map.prototype.set = function (key, value) {
  console.log(key, value); // or other IO actions
  oldSet.call(this, key, value);
};

const map = new Map();
map.set('a', 1);

console.log(map.get('a'));

Но, возможно, это был бы более безопасный способ:

'use strict';

class fsMap extends Map {
  set(key, value) {
    console.log(key, value); // or other IO actions
    super.set(key, value);
  }
}

const map = new fsMap();
map.set('a', 1);

console.log(map.get('a'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...