Skip to content

Instantly share code, notes, and snippets.

View Olegas's full-sized avatar

Oleg Elifantiev Olegas

  • Russia, Yaroslavl
View GitHub Profile
const [images, setImages] = useState([]);
function loadFileAsync(file) {
const reader = new FileReader();
return new Promise((resolve, reject) => {
reader.onloadend = (e) => {
resolve(e.target.result);
};
// TODO handle error
reader.readAsDataURL(file);
@Olegas
Olegas / let-me-explain.md
Last active April 18, 2019 16:36
Объясню...

Комменатрий к ответу: "У нас есть серия выражений, сгруппированных и разделённых запятыми, они оцениваются слева направо, но сохраняется только результат последнего выражения."

Комментарий @Akiyamka: "Более того, выполняется только последнее"

Т.е. я трактовал это как: "У нас есть серия выражений, ..... они (выражения) оцениваются слева направо, ... Более того, выполняется только последнее (выражение)"

class My extends Control {
_state = 0;
_beforeMount(options) {
// первичная инициализация
this._state = options.value;
}
_beforeUpdate(newOptions) {
if (this._options !== newOptions) {
// Пришли новые опции - обновим стейт
this._state = newOptions.value;
@Olegas
Olegas / symbol.js
Last active June 4, 2019 22:10
Symbol?
// router.js
app.get('/', (req, res) => {
// generate rewuest uuid
// assign it to something (?)
// kick in some app logic
});
// db.js
async function getAfromB() {
const result = await driver.oneOrNone('SELECT a FROM b');
const cls = require('cls-hooked');
const ctx = cls.createNamespace('test-cls-context');
// result of this demo: 4 and 13
// despite ctx is "global", every async "context" has it's own strage and values are not mixed between timeouts
setTimeout(() => {
ctx.run(() => {
ctx.set('value', 1);
setTimeout(() => {
const o = {
foo: function() { return this.bar },
bar: 10
};
const f = o.foo;
console.log(f()); // ??
console.log(0);
for(var i = 0; i < 1000000000; i++) {
setTimeout(function() {
console.log(1);
}, 0);
}
console.log(2);
function apiWrapper(args) {
const method = getMethodSomehow(args); // Тут мы как-то получили someAppliedAPI
return method(args).catch((e) => {
// это общий обработчик
})
}
function someAppliedAPI(args) {
@Olegas
Olegas / bulk_insert.md
Last active July 11, 2019 12:55
Bulk insert

JavaSript (Node)

   const data = [{ field1: 1, field2: 'abc'}, {field1: 10, field3: 20}];
   driver.none(query, {
      data: JSON.stringify(data)
   });

SQL

describe('Some case', () => {
before(() => {
// Mock BL here
declareMock('Object.Method').staticResponse(new RecordSet(....));
declareMock('Object.Complicated').withResolver((args) => {
// if arg1 > 10 -> result1
// if arg1 <= 10 -> result2
});
});