javascript - 如何把回调函数的值传回主函数呢?
ringa_lee
ringa_lee 2017-04-11 12:42:30
[JavaScript讨论组]
'use strict';
function doSQL(sql) {

        let mysql = require('mysql');
        let row = 'unfinished';
        let connection = mysql.createConnection({
            host: 'localhost',
            user: 'root',
            password: 'abcde1234',
            database: 'user'
        });
        connection.connect();

        connection.query(sql, function (err, rows) {   
        //这里总是在return之后执行
            row=rows;
            connection.end();
        });

    return row;//  返回 unfinished
}
module.exports=doSQL;

是不是应该用generator async 什么的?(要是有多种方法更好啦~ 谢谢
ringa_lee
ringa_lee

ringa_lee

全部回复(4)
高洛峰
function doSQL(sql,callback) {
   ...
  connection.query(sql, function (err, rows) {   
            row=rows;
            callback(row)
            connection.end();
        });
}
module.exports=doSQL;

doSQL.query(sql,function(row){
   
})

定义个回调函数 代码大概这样子。主函数内回调回来

PHPz

node中 异步问题 callback,promise,async 几种方案,自己百度慢慢学把!~!~!~

PHPz

这个要求不可能完成.....js事件循环机制,return前的回调函数一定在return执行完才执行

天蓬老师

function doSQL(sql) {

    let mysql = require('mysql');
    let row = 'unfinished';
    let connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: 'abcde1234',
        database: 'user'
    });
    return Promise.resolve(sql)
        .then(s=>{
           connection.connect()
           return new Promise((resolve,reject)=>{
            connectoin.query(s,function(err,rows)){
             if(err){
              reject(err)
                }
             resolve(rows)               
               }) 
            })
          } 
}

module.exports=doSQL;

//使用Promise .异步操作,如果不改你的代码结构,要回个值的话上async

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号