久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

javascript - nodejs函數返回值為undefined,不太明白為什么。

瀏覽:127日期:2023-09-20 13:29:45

問題描述

javascript - nodejs函數返回值為undefined,不太明白為什么。javascript - nodejs函數返回值為undefined,不太明白為什么。

最后用了promise解決,代碼如下:exports.selectByUsername = selectByUsername;function selectByUsername(username){

var promise = new Promise(function(resolve){ var sql = 'SELECT COUNT(*) count FROM wx_user WHERE username = ?'; var sqlParams = [username]; var count; co.query(sql,sqlParams,function(err,result){if(err){ return console.log(err.message);}console.log('------------------------開始查詢---------------------');console.log(result);var str = JSON.stringify(result);var json = JSON.parse(str);count = json[0].count;console.log(count);console.log('------------------------查詢結束---------------------');resolve(count); });});promise.then(function(value){ // console.log(value); return value;});return promise;

}

app.post(’/ajax’,urlencodedParser,function(req,res){

username = req.body.name;console.log(username);var promise = s.selectByUsername(username);promise.then(function(value){ console.log(value); if(value!==1){res.send('用戶名不存在'); }});

});

參考文檔:http://liubin.org/promises-book/

問題解答

回答1:

query里面的function在query完成后才會執行到,而這個時候外部函數已經返回了,所以count不會賦到值,仍然為undefined

回答2:

寫在query里也不會返回count的,因為query這個方法是異步的

回答3:

簡而言之,把return count 寫在query 里面就好了。

標簽: JavaScript
主站蜘蛛池模板: 屏南县| 巴林右旗| 金川县| 湖口县| 云霄县| 都安| 福安市| 泉州市| 韶关市| 府谷县| 繁昌县| 二连浩特市| 柳江县| 莆田市| 吴桥县| 武清区| 盈江县| 海盐县| 万源市| 内乡县| 广水市| 萨迦县| 古交市| 宝丰县| 息烽县| 平谷区| 海丰县| 淳安县| 台中市| 梅州市| 罗田县| 永清县| 罗平县| 乌鲁木齐市| 土默特右旗| 鸡泽县| 梨树县| 客服| 余江县| 泗水县| 乌拉特前旗|