let prices2 = { DVS: 'DVS' }
let props = {}
props[prices2['DVS']] = 5
console.log(props.DVS)
// Вот так делать очень не рекомендуется:
window[prices2['DVS']] = 5 // Браузер
global[prices2['DVS']] = 5 // Нода
console.log(DVS)
async/await
для асинхронных операций, вы можете использовать библиотеку mysql2/promise
, которая поддерживает промисы и позволяет использовать async/await
. Вот пример того, как можно реализовать ваш запрос:const mysql = require('mysql2/promise');
async function getData() {
const connection = await mysql.createConnection({
host: "127.0.0.1",
user: "root",
password: "",
database: "mania"
});
try {
const [rows, fields] = await connection.execute('SELECT * FROM price_history_1d');
for (let row of rows) {
console.log(`ID: ${row['birza']}, NAME: ${row['symbol']}, PRICE: ${row['price']}`);
// Теперь вы можете работать с каждой строкой данных как с объектом
// Например, вы можете сохранить данные в переменные или отправить их куда-либо
}
} catch (err) {
console.error(err);
} finally {
await connection.end();
}
}
getData();
getData
, которая устанавливает соединение с базой данных, выполняет запрос и выводит результаты. Каждая строка результатов обрабатывается в цикле, и вы можете сохранять данные в переменные или использовать их для других операций внутри цикла.mysql2/promise
вам нужно будет установить этот пакет через npm:npm install mysql2
async/await
позволяет писать асинхронный код, который выглядит как синхронный, и делает его более читаемым и удобным для отладки. Ранее на php я использовал mysqli_fetch_arrayС вашим запросом и на PHP вернётся одна строка.
const mysql = require('mysql2/promise');
const conn = await mysql.createConnection({ ... });
const logins = ['marikas', 'tym', 'bars'];
async function main() {
const result = await conn.execute(
'SELECT login, cash FROM clients WHERE login in (?)',
[logins],
);
for ([login, cash] of result) {
console.log(login, cash);
}
}
const mysql = require('mysql2');
const conn = mysql.createConnection({ ... });
const logins = ['marikas', 'tym', 'bars'];
function main() {
conn.execute(
'SELECT login, cash FROM clients WHERE login in (?)',
[logins],
(err, result) => {
if (err) {
throw new Error(err);
}
for ([login, cash] of result) {
console.log(login, cash);
}
},
);
}
message
, то есть при приходе сообщения от WS-сервера. А это сообщение может прийти как сразу же, так и через час.console.log(vv)
уже отработает. class websocketBinance extends websocketCore {
public $respo;
...
$this->respo = $this->readSocket();
....
}
class Client {
public function miniTicker(array $callbacks) {
foreach ($callbacks as $key => $callback) {
$conn = 'aaaaa';
$msg = 'msg-'.$key;
$callback($conn, $msg);
}
}
}
class Message {
public array $messages = [];
public function addMessage(string $msg) {
$this->messages[] = $msg;
}
}
$message = new Message();
$callbacks = [
'message' => function ($conn, $msg) use ($message) {
$message->addMessage($msg);
},
'ping' => function ($conn, $msg) use ($message) {
$message->addMessage($msg);
}
];
$client = new Client();
$client->miniTicker($callbacks);
var_dump($message->messages);