国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

問題描述

javascript - nodejs函數(shù)返回值為undefined,不太明白為什么。javascript - nodejs函數(shù)返回值為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('------------------------查詢結(jié)束---------------------');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完成后才會(huì)執(zhí)行到,而這個(gè)時(shí)候外部函數(shù)已經(jīng)返回了,所以count不會(huì)賦到值,仍然為undefined

回答2:

寫在query里也不會(huì)返回count的,因?yàn)閝uery這個(gè)方法是異步的

回答3:

簡(jiǎn)而言之,把return count 寫在query 里面就好了。

標(biāo)簽: JavaScript
主站蜘蛛池模板: 景洪市| 满洲里市| 贺州市| 堆龙德庆县| 华亭县| 牟定县| 郎溪县| 巴彦县| 明星| 平遥县| 黔江区| 米易县| 台山市| 太仆寺旗| 客服| 米易县| 长子县| 揭东县| 龙井市| 绥中县| 清原| 大冶市| 格尔木市| 伊春市| 会东县| 鹤庆县| 乌恰县| 衡山县| 湖北省| 汝城县| 壶关县| 都江堰市| 芜湖市| 鄂托克前旗| 阿鲁科尔沁旗| 东港市| 磐安县| 昌都县| 嘉义县| 西华县| 会泽县|