异步方法返回值Promise { pending }

再写node.js时,使用异步方法时

var getSearchList=  async function (id) {

    const users = await itemcate.findAll();
    var list = []
    var tree = mymath.getDFSTree(users, 0);
    getList(tree, id, list)
    console.log(list)
    return list
}

调用时,返回值异常

原因:返回值异常原因

解决方法

exports.getsearch = async (req, res) => {
    //使用req.on 接受参数
    // req.on('data',(postdata)=>{
    //     var data=JSON.parse(postdata.toString())
    //     // console.log(JSON.parse(postdata.category1Id.toString()))
    // })

    var cateid1 = req.body.searchParams.category1Id
    var cateid2 = req.body.searchParams.category2Id
    var cateid3 = req.body.searchParams.category3Id
    var brand = req.body.searchParams.trademark
    var props = req.body.searchParams.props
    var str, str2, str3
    var list = []
    var currentid
    var idlist = []

    //判断所属第几级分类id 并拼写sql
    if (cateid1 != null) {
        str = `select id from tb_spu where cid1 = ${cateid1}`
        var currentid = cateid1
    }
    if (cateid2) {
        str = `select id from tb_spu where cid2 = ${cateid2}`
        var currentid = cateid2
    }
    if (cateid3) {
        str = `select id from tb_spu where cid3 = ${cateid3}`
        var currentid = cateid3

    }
    var idList = await getSearchList.getSearchList(currentid)
    console.log(idList)
    //判断是否需要选择品牌
    if (brand) {
        str2 = `select s.id from tb_spu as s inner join tb_brand as c on s.brand_id = c.id where c.id in ${brand} and s.id in (${str})`
    } else {
        str2 = str
    }
    if (props) {
        str3 = `select spu_id from tb_spu_detail where generic_spec like "%${props}%" and spu_id in (${str2})`
    } else {
        str3 = str2
    }
    db.query(str3, (err, results) => {
        if (err) return console.log(err.message)

        var array1 = []
        for (var item in results) {
            array1.push(item)
        }
        var sqlstr = `select s.*,c.* from tb_spu as s inner join tb_sku as c on s.id = c.spu_id where s.id in (${array1}) and c.id%27=1`

        db.query(sqlstr, (err, results) => {
            if (err) return console.log(err.message)
            list.push(results)

            var sqlstr1 = `select * from tb_spec_param where category_id in (${idList})`
            db.query(sqlstr1, (err, results) => {
                if (err) return console.log(err.message)
                    console.log(results)
            })
        })

    })
    res.send(req.body.data)
}

将外部方法也设为 异步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值