У меня есть функция, которая отправляет запрос в ipcMain, а затем ожидает запуска SQL-запроса. Когда ответ возвращается, я зацикливаюсь на возвращенных данных и отображаю их на экране для просмотра пользователем.
По какой-то причине, когда данные возвращаются, и я регистрирую их в процессе рендеринга, они сортируются в алфавитном порядке. Я не смог определить, где и почему происходит такая сортировка.
Мне кажется, на основании console.logs, что когда-то между ipcMain, отправляющим запрос, и процессом рендеринга, получающим данные, которые он сортирует.
Любое понимание будет оценено.
Я вошел во все вопиющие места, чтобы посмотреть, смогу ли я диагностировать, откуда поступает заказ.
// function that gets the results
// This console.log is alphabetically sorted here
runQuery(config){
window.ipc.send('run-query', config);
return new Promise((resolve, reject) => {
window.ipc.on('run-query-reply', (event, result) => {
console.log(result)
resolve(result);
});
});
}
// calls handler - it is not sorted on this console.log
ipcMain.on('run-query', async (event, arg) => {
var results = await handlers.runQuery(event, arg, scope);
console.log(results)
event.sender.send('run-query-reply', results)
})
// handler function - it is not sorted on this console.log
async function runQuery (){
try {
var connection = await new scope.sql(arg.server.database, arg.server.username, arg.server.password, config);
return await connection.query(query).spread((results) => {
console.log(results)
return results;
})
} catch (error) {
return scope.errorHandler(error.message)
}
}
Пример данных:
// Data in ipcMain would like like:
{
"email": "test",
"contact-id":"1",
"first-name":"test",
"allow-email":test"
}
// Data from render window.ipc
{
"allow-email":"test",
"contact-id":"1",
"email": "test",
"first-name":"test"
}