Друзья привет у меня массивы в суммы собираются где одинаковые ключи, потмо выдаю два массива в куче, но вот проблема чтото один из массивов через раз пустой , в чем может быть проблема , в сортировке может или в сборке самой , второй массив который sell отображается идеально без косяков, а первый через раз пустой
попытаюсь разьяснить код
//это пришел запрос с двумя параметрами
app.get('/order-book', (request, response) => {
//это те параметры
const c_currency = request.query.c_currency;
const currency = request.query.currency;
//тут я делаю выбор ордеров с типом 1
const orderbookbuy = 'SELECT btc,btc_price FROM orders WHERE c_currency = ? AND currency = ? AND order_type = 1 ORDER BY btc_price DESC';
//тут я делаю выбор ордеров с типом 2
const orderbooksell = 'SELECT btc,btc_price FROM orders WHERE c_currency = ? AND currency = ? AND order_type = 2 ORDER BY btc_price ASC';
//отправляю первый запрос
var ordersbuy = {};
pool.query(orderbookbuy, [c_currency, currency], function(error, result, fields) {
if (error) throw error;
//полученый ответ передаю в функцию
ordersbuy = result;
myFunctionbuy(ordersbuy);
});
//тут функция собирает массивы с одинаковым btc_price в один и выдает суммы btc_price и btc тобишь количество
function myFunctionbuy(ordersbuy) {
const arr = ordersbuy;
const imm1 = {};
arr.forEach(item => {
if (!imm1[item.btc_price]) {
imm1[item.btc_price] = item.btc;
} else {
imm1[item.btc_price] += item.btc;
}
});
const resultbuy = Object.keys(imm1).map(key => {
const obj = {
price: +key,
order_amount: imm1[key]
}
return obj;
})
ressbuy = resultbuy;
}
//тут второй массив который работает замечательно никаких косяков , они оба олдинаковые и потмо в итоге я их выдаю в одном многомерном массиве
var orderssell = {};
pool.query(orderbooksell, [c_currency, currency], function(error, result, fields) {
if (error) throw error;
orderssell = result;
myFunctionsell(orderssell);
});
function myFunctionsell(orderssell) {
const arr = orderssell;
const imm = {};
arr.forEach(item => {
if (!imm[item.btc_price]) {
imm[item.btc_price] = item.btc;
} else {
imm[item.btc_price] += item.btc;
}
});
const resultsell = Object.keys(imm).map(key => {
const obj = {
price: +key,
order_amount: imm[key]
}
return obj;
})
resssell = resultsell;
//тут я их обоих передаю в функцию чтобы выдать через express
sumBuy(ressbuy, resssell);
}
function sumBuy(ressbuy, resssell) {
response.send({
bid: ressbuy,
ask: resssell
})
}
});
}
я понимаю что желательно бы вообще делать один запрос общий не деля на тип а потмо уже чере цикл переработат их сумировать одинаковые цены, но знаний не особо хватате покачто , я только вот публичные данные начал переносить на ноде, потмоучто пхп очень не справляется ,
function pquery(sql, params) {
return new Promise((resolve, reject) => {
pool.query(sql, params, (error, result) => {
if (error) {
return reject(error);
}
resolve(result);
});
});
}
function myFunction(ordersbuy) {
const imm1 = {};
for (const { btc_price, btc } of ordersbuy) {
if (!imm[btc_price]) {
imm[btc_price] = btc;
} else {
imm[btc_price] += btc;
}
}
const result = Object.keys(imm1).map(key => ({
price: +key,
order_amount: imm1[key]
}));
return result;
}
app.get('/order-book', async (request, response) => {
// это те параметры
const { c_currency } = request.query;
const { currency } = request.query;
// тут я делаю выбор ордеров с типом 1
const order = 'SELECT btc,btc_price FROM orders WHERE c_currency = ? AND currency = ? AND order_type = ? ORDER BY btc_price';
const orderbookbuy = `${order} DESC`;
const orderbooksell = `${order} ASC`;
// отправляю первый запрос
const ordersbuy = await pquery(orderbookbuy, [c_currency, currency, 1]);
const bid = myFunction(ordersbuy);
const orderssell = await pquery(orderbooksell, [c_currency, currency, 2]);
const ask = myFunction(orderssell);
response.send({ bid, ask });
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Происходит ввод данных в поле (input) и получение значения с кнопки "Жмакни меня":
Есть компонент на vue - мультиселектРешил изменить его кастомный значок - стрелку, через слоты
Мне нужно создать компонент Vue, который будет принимать данные Json из хранилища VuexКогда я создаю тестовый код в песочнице, все работает