首页 > 解决方案 > 无法从异步函数获取返回值

问题描述

我无法从 JavaScript 中的异步函数获取返回值。我根据此处找到的其他帖子尝试了几种不同的方法 -如何使用 Node 正确地从 mysql 返回结果?并在此处将 mysql 查询行存储在变量中以备后用。我当前的代码如下。

function get_info(callback) {

    var mysql = require('mysql');
    var connection = mysql.createConnection({
        host: 'xxxxxxx',
        user: 'bob',
        password: 'bob',
        database: 'xxxxxx'
    });

    connection.connect(function (err) {

        if (err) throw err;
        connection.query("SELECT Name FROM webform", function (err, result) {
            if (err) throw err;
             return callback(result);
        });
        connection.end();
    });
}

 var newli = get_info(function(result){
    stuff_i_want = result;
   return stuff_i_want;
 });

console.log(newli);

我期望console.log(newli)打印stuff_i_want我从get_info()函数返回的值,但我得到了未定义的值。我正在尝试resultconnection.query存储在以后可以使用的变量中获取 的值。

标签: javascriptnode.jsasynchronous

解决方案


推荐阅读