[英]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.