如何等待节点js中的子查询结果?

编程入门 行业动态 更新时间:2024-10-08 06:17:52

如何等待<a href=https://www.elefans.com/category/jswz/34/1771452.html style=节点js中的子查询结果?"/>

如何等待节点js中的子查询结果?

我正在将Graphql与mongoDb一起使用。在解析器中使用了子查询,但是在执行子查询时,主查询返回的数据不会等到子查询完成。我想使用解析器中的子查询参数对主查询执行操作。

  return  await Articles.find({ Status: 1, isPublish : true  })
      .sort({TotalClapCount:-1})
      .sort({ViewCount:-1})
      .skip( offset )
      .limit(limit)
      .then( async ( lor ) => { await
       lor.forEach(async function(data, key){
          data["isBookmark"] =  
                  await ArticleBookmarks
                  .find({ ArticleID : data["ID"], UserID : ArgsUserID, Status : 1 })
                  .countDocuments()
                  .then( (hre) =>{return (hre == 1) ? true : false; });
      );
    });
    return  lor;
});

我想在单个查询中显示带有书签的文章列表,但在子查询操作之前执行返回。asyn如何为此工作?

回答如下:

尝试如下

let MainFunction = () => {
    return new Promise(async (resolve, reject) => {
        try {
            let query = {
                Status: 1,
                isPublish: true
            }
            let sortOptions = {
                TotalClapCount: -1,
                ViewCount: -1
            }
            let Data = await Articles.find(query).sort(sortOptions).skip(offset).limit(limit).lean();
            await Data.forEach(async (data) => {
                let cquery = {
                    ArticleID: data["ID"],
                    UserID: ArgsUserID, Status: 1
                };
                let countedArticles = await ArticleBookmarks.countDocuments(cquery).lean();
                data.isBookmark = (countedArticles >= 1) ? true : false;
            });
            resolve(Data);
        } catch (error) {
            console.error(error);
            reject(error);
        }
    });
}

let Data = await MainFunction();
return Data;

注意:请根据需要在MainFunction内部传递必要的参数。

更多推荐

如何等待节点js中的子查询结果?

本文发布于:2024-05-06 21:09:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1753848.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:节点   查询结果   js

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!