【发布时间】:2021-06-01 21:21:10
【问题描述】:
我有这样的功能
function con(){
database.connect(con, (err, con) => {
conn.query("select * from person", (err, rs) => {
console.log(rs)--->result
return rs
})
}
}
var val = con()
console.log(val) // --> Undefined
经过大量搜索后发现我们无法从回调中返回值。完成此操作
function con(fn){
database.connect(con, (err, con) => {
conn.query("select * from person", (err, rs) => {
console.log(rs) // --> result
fn(rs)
})
}
}
var val = con(function(rs) {
console.log(rs) // --> result
return rs
})
console.log(val) // --> Again undefined
我想在另一个方法中使用 rs 并且应该在 graphql 的解析器中返回它 如何从上面返回值并在另一个函数中使用它
【问题讨论】:
-
不,我想再次从 con 中返回值,因为 val 它是未定义的
-
你不能,你需要使用回调中的值,或者使用链接中提到的承诺。
console.log(val)将在你的connect回调函数被调用之前运行,所以知道val/rs何时可用的唯一方法是使用回调/Promise
标签: node.js callback graphql asynccallback