节点js中使用异步获取和等待数据"/>
如何在节点js中使用异步获取和等待数据
我有两个产品和类别的集合,并且两个集合都具有数据产品(152),类别(10)。因此,我尝试连接数据库以检索数据。首先,我使用async-await功能调用产品收集数据,然后调用产品类别收集数据。但是它获得了第一类数据和下一个产品数据。如何解决这个问题,任何人都可以给出答案。
product.js
async function product_data(collection) {
let mongodb = await MongoDB.connect(collection)
let result = await mongodb.findAll()
return result
}
module.exports.product_data = product_data
category.js
async function category_data(collection) {
let mongodb = await MongoDB.connect(collection)
let result = await mongodb.findAll()
return result
}
module.exports.category_data = category_data
app.js
const {product_data} = require("./product")
const {category_data} = require("./category")
async function updatedb() {
let product_data = await product_data("ecomm_product")
console.log(product_data)
let category_data = await category_data("ecomm_category")
console.log(category_data)
}
我有结果
[打印产品数据后的第一个打印类别数据
预期结果
回答如下:其在打印类别数据之后的第一个打印产品数据
我根本无法重现这一点,即使在明显延迟的情况下,产品比类别花费的时间更长。将您的代码折叠到一个文件中,并使用正确的JS约定进行命名和大小写:
function getProductData(collection) {
return new Promise(resolve => {
setTimeout(() => resolve('product'), 2000);
});
}
function getCategoryData(collection) {
return new Promise(resolve => {
setTimeout(() => resolve('category'), 1000);
});
}
async function updatedb() {
let product_data = await getProductData("ecomm_product")
console.log(product_data)
let category_data = await getCategoryData("ecomm_category")
console.log(category_data)
}
updatedb();
每次都简单地产生以下输出:
$node test.js
product
category
更多推荐
如何在节点js中使用异步获取和等待数据
发布评论