計算を行うためのコードがあります。このコードをasynの方法で書くにはどうすればよいですか?データベースにクエリを実行すると、結果を同期的に取得できないようです。では、この種の機能を実装するにはどうすればよいでしょうか。
function main () {
var v = 0, k;
for (k in obj)
v += calc(obj[k].formula)
return v;
}
function calc (formula) {
var result = 0;
if (formula.type === 'SQL') {
var someSql = "select value from x = y"; // this SQL related to the formula;
client.query(someSql, function (err, rows) {
console.log(rows[0].value);
// *How can I get the value here?*
});
result = ? // *How can I return this value to the main function?*
}
else
result = formulaCalc(formula); // some other asyn code
return result;
}