[英]Problem returning JavaScript Object from promise in nodejs
[英]NodeJS problem with returning variable MySQL
function status(s) {
const n = parseInt(s.substr(1));
var o = '';
switch(s[0]) {
case 'c':
c.query("SELECT * FROM chapters WHERE id='"+n+"' LIMIT 1", function(e, r) {
if (e) throw e;
o = r[0].t;
});
break;
};
return o;
};
console.log(status('c1'));
如何在查询中从 function 中创建此返回变量“o”?
您需要使用 Promise。 这是一个例子。 我还将程序流控制重构为功能级别:
const makeQuery = s =>
`SELECT * FROM chapters WHERE id='${parseInt(s.substr(1))}' LIMIT 1`
const doQuery = s => new Promise((resolve, reject) => c.query(
makeQuery(s),
(e, r) => e ? reject(e) : resolve(r[0].t)));
const status = s =>
s[0] === 'c' ?
doQuery(s) :
Promise.resolve(undefined)
status('c1').then(console.log);
如果查询 function 具有 Promise 接口以及您目前使用的错误优先回调接口,则您可以使用async
和await
执行相同的操作。
好的,非常感谢。 我已经重写了所有代码,以便它发送两个请求,第二个请求是在接收到第一个请求的数据后,然后将这个 function 踢出去,但很可能我将来可能需要了解这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.