Я пишу приложение NodeJS v0.10 с MariaSQL.возвращаемое значение из функции с асинхронными командами
Я хочу создать функцию, которая возвращает идентификатор строки, и если строка не существует, чтобы создать ее, а затем вернуть идентификатор.
это то, что я до сих пор:
TuxDb.prototype.createIfNEDrinkCompany = function(drinkCompany) {
this.client.query("insert into drink_company(drink_company_name) values(:drink_company) on duplicate key update drink_company_id=drink_company_id",
{'drink_company' : drinkCompany})
.on('result',function(res) {
res.on('end',function(info){
if (info.insertId > 0) {
return info.insertId;
} else {
this.client.query("select drink_company_id from drink_company where drink_company_name = :drink_company",{'drink_company' : drinkCompany})
.on('result',function(res){
res.on('row',function(row){
return row.drink_company_id;
});
});
}
});
});
}
теперь проблема в том, что, так как это асинхронная функция заканчивается до возвращается значение.
как я могу решить эту проблему?
вам «Вы добавили новый тег под названием« mariasql », не могли бы вы сказать мне, что это такое? [googling] (https://www.google.co.in/search?q=MariaSQL&oq=MariaSQL&aqs=chrome..69i57j69i60&sourceid=chrome&es_sm=93&ie=UTF-8&qscrl=1) не получилось. – gideon
Поиск node-mariasql на google – ufk