doubleyong
管理员
管理员
  • 最后登录2026-05-10
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:5218回复:0

[nodejs]nodejs 中 使用async-await 请求数据示例

楼主#
更多 发布于:2020-04-29 11:57
nodejs 中 如何使用async-await 请求数据,写了一个DEMO,
可供参考:


async function getProductData(request,response){
    var user = request.session.user;
    var head = request.session.headImage;
    var id = request.query.id; // 商品id
    if(!id){
        response.send("<script>alert('请选择对应的商品');location.href='index.html'</script>")
    }
    var productInfo = await getProduct(id);
    var colorList = await  getGuiColor(id);
    var sizeList = await  getGuiSize(id);
    response.render("productDetail",{user:user,head:head,product:productInfo,colorList:colorList,sizeList:sizeList});
}

注:
1. async与await要结合使用
     2. await后面的方法要返回一个promise对象


代码如下:
function getProduct(id){
   return new Promise((resolve,reject)=>{
       let sql = `
                SELECT *
                FROM product JOIN productrule ON product.id = productrule.productId
                    WHERE product.id = ? AND productrule.isDefault = 1 AND
                    product.state = 1 AND product.DelState = 1
                    LIMIT 1
              `;
       db.query(sql,[id],function(err,data){
               if(err){
                   reject(err);
               }else{
                   resolve(data);
               }
       })
   })
}
function getGuiColor(id){
    return new Promise((resolve,reject)=>{
        let sql = `SELECT DISTINCT color FROM productrule WHERE productId=?`;
        db.query(sql,[id],function(err,data){
            if(err){
                reject(err);
            }else{
                resolve(data);
            }
        })
    })
}
function getGuiSize(id){
    return new Promise((resolve,reject)=>{
        let sql = `SELECT DISTINCT size FROM productrule WHERE productId=?`;
        db.query(sql,[id],function(err,data){
            if(err){
                reject(err);
            }else{
                resolve(data);
            }
        })
    })
}
       总结:async与await只是让promise使用更简单,没有替换promise
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号