微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 nodejs 中的回调函数返回值

如何解决从 nodejs 中的回调函数返回值

我有这样的功能

function con(){
    database.connect(con,(err,con) => {
        conn.query("select * from person",rs) => {
            console.log(rs)--->result
            return rs
        })
    }
}
var val = con()
console.log(val) // --> Undefined

经过大量搜索发现我们无法从回调中返回值。完成此操作

function con(fn){
    database.connect(con,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 的解析器中返回它 如何从上面返回值并在另一个函数中使用它

解决方法

所以,你需要清楚地理解——当你return时,你从当前函数返回。

在示例中:

var val = con(function(rs) {
    console.log(rs) // --> result
    return rs
})

你从匿名回调函数返回 rs。但 con 不返回任何内容。

我建议您使用 async/await,据我所知,您使用 pgmysql

const connection = await database.connect(connectionOptions)
const result = await connection.query('select * from person')
console.log('Result:',result)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。