Hello devforum,
Am nevoie de un sfat cum as putea sa fac o functie sa ruleze sincron in NodeJS.
Exemplu/ mai mult pseudocod
//functie ce face un query ==> As vrea sa ruleze sincron
function getUsers(){
db.query('SELECT * FROM USERS').
then.(function(results){
return results;
})
}
function altQuery(){
db.query('SELECT * FROM AltTabel')
.then(function(results){
var users = getUsers(); // Eroare, nu s a terminat de executat prima functie( Nodejs e asincron)
})
}
Cum pot realiza ce am de gand? Stiu, sunt multe librari ce te ajuta sa ti faci codul sincron, dar nu ma prind. Ma puteti ajuta cu un exemplu / sfat ? Mega thanks
// Returns a Promise
function getUsers() {
return db.query('SELECT * FROM Users');
}
// Returns a Promise
function altQuery() {
return getUsers()
.then((users) => {
db.query('SELECT * FROM AltTabel')
.then((altTabel) => {
// do something with users and altTabel
});
});
}
Daca ai cum sa pui async/await din ES2017+ poti transforma codul radical:
async function work() {
const users = await db.query('SELECT * FROM Users');
const altTabel = await db.query('SELECT * FROM AltTabel');
// do something with users and altTabel
}
Eu recomand sa folosesti un ORM in cazul Javascript daca ai deaface cu mysql, la primele 2 proiecte am folosit mysql si inca imi repar greselile din trecut. E mult prea diferit JS fata de php/java si avem tendinta sa facem ceva total gresit.