calcAmount
по SOLID должен быть методом у объекта с этими ключами.const data = [{"id": 1, "a": 99, "b": 100}, {"id": 2, "a": 1 "b": 2}];
interface Calculable {
calcAmount(): number;
}
class CalculableAB implements Calculable {
constructor(obj) {
Object.assign(this, obj);
}
calcAmount() {
const {a, b} = this;
return a + b;
}
}
struct = data.map(obj => new CalculableAB(obj));
Calculable
ты просто вызываешь у него calcAmount()
. Как оно там реализовано - тебя не волнует.class AsyncQueue {
constructor(result) {
this.queue = [];
this.result = result;
}
isStreaming = false;
add(promise) {
this.queue.push(promise);
if(!this.isStreaming)
this.stream();
}
async stream() {
this.isStreaming = true;
for await (const result of this.queue) {
this.result(result);
}
this.queue.length = 0;
this.isStreaming = false;
}
}
data() {
const schedulesQueue = new AsyncQueue(this.showLoadedSchedules);
return {
schedulesQueue,
// ...
}
},
methods: {
showLoadedSchedules(response) {
if(this.curDateEvent) {
this.changeMobileDay(this.curDateEvent);
}
// ...
},
addSchedulesToQueue(locationId, gameModeId, selectedHeadsets, day) {
let param = 'locationId=' + locationId + '&gameModeId=' + gameModeId + '&headsets=' + selectedHeadsets
if (day)
param += '&day=' + day;
return this.schedulesQueue.add(
axios({
method: 'get',
url: 'schedules?' + param
}).catch((error) => {})
);
}
}
function isHappy(array){
// записываем пустой массив в array
// (не важно что там мы получили, теперь этого нет)
array = []
// получаем 6 переменных с значением "ничего"(undefined)
let[x,y,z,b,n,v] = array
// сравниваем x+y+z == b+n и выкидываем, никак не используя
// с помощью оператора запятая(,) в if попадает только v
// как мы знаем во всех переменных undefined - if(undefined) - ложь
if(x+y+z == b+n,v){
console.log(`Число ${array} - счастливое!`);
}
else{
console.log(`Число ${array} - несчастливое`);
}
}
// вызываем isHappy с аргументом 000000, который является числом 0,
// просто записанным длинно, а не массивом
isHappy(000000)
value['key'](...args)
Promise
, что такое async
\await
. Без этого ты никуда не уедешь.this.svg = await getFileContent(url)
, либо так getFileContent(url).then(a => this.svg = a)
. Promise
всегда возвращает Promise
. Тебе надо дождаться выполнения Promise
'а тем или иным способом.this.svg = getFileContent(url)
- конечно у тебя в this.svg
лежит Promise
. Этот Promise
только начинает выполнение и никаких данных там нет. Данные в него прилетят возможно через час, если ты на модеме.$emit
событие. props
.provide
в родителе и inject
в обоих комонентах.Vue.observable
/Vue.reactive
и, соответственно, import
в обоих компонентах.mounted
у тебя происходит раньше чтем getCookie()
сработает, а потому отправляет запрос до авторизации. Если это так, то подожди рисовать компонент\запрашивать юзера, пока не убедишься в авторизации.new Promise(resolve => {
resolve(token);
});
-> Promise.resolve(token);