Javascript 是否有一种方法可以使用节点Js中的Promise将值传递给数组对象?
我正在使用express Js和Shopify API来获取产品并将其保存到阵列中。但是,当我获取所有数据时,我检查列表大小,结果返回0。我在获取数据时一直在打印产品详细信息,没有问题。谁能告诉我发生了什么事?我怎样才能解决这个问题? 这是我的密码:Javascript 是否有一种方法可以使用节点Js中的Promise将值传递给数组对象?,javascript,express,shopify,Javascript,Express,Shopify,我正在使用express Js和Shopify API来获取产品并将其保存到阵列中。但是,当我获取所有数据时,我检查列表大小,结果返回0。我在获取数据时一直在打印产品详细信息,没有问题。谁能告诉我发生了什么事?我怎样才能解决这个问题? 这是我的密码: const fetch = require("node-fetch"); const Product = require("./Product"); const client = Client.buildCl
const fetch = require("node-fetch");
const Product = require("./Product");
const client = Client.buildClient(
{
domain: "storename.myshopify.com",
storefrontAccessToken: "token",
},
fetch
);
const ProductList = class {
getProductList() {
var productList = [];
client.product.fetchAll().then((products) => {
products.forEach((product) => {
const p = new Product(
product.availableForSale,
product.createdAt,
product.description,
product.id,
product.images,
product.options,
product.productType,
product.publishedAt,
product.title,
product.variants
);
p.printProduct();
productList.push(p);
});
});
console.log("size:" + productList.length);
return productList;
}
};
module.exports = ProductList; ```
问题是您的fetch和
。然后
处理程序正在运行--因此它们在您拥有控制台后执行。记录
-编辑输出并返回编辑。您有两个选项:
返回
a并解析
结果:
const fetch=require(“节点提取”);
常数产品=要求(“/产品”);
const client=client.buildClient({
域名:“storename.myshopify.com”,
storefrontAccessToken:“token”,
},
取来
);
const ProductList=class{
getProductList(){
返回新承诺((解决、拒绝)=>{
var productList=[];
client.product.fetchAll().then((产品)=>{
products.forEach((产品)=>{
常数p=新产品(
product.availableForSale,
product.createdAt,
产品说明:,
product.id,
产品图片,
产品选项,
product.productType,
product.dat,
产品名称,
产品变量
);
p、 打印产品();
productList.push(p);
});
log(“大小:+productList.length”);
解析(产品列表);
});
}
}
};
module.exports=产品列表;
const fetch=require(“节点提取”);
常数产品=要求(“/产品”);
const client=client.buildClient({
域名:“storename.myshopify.com”,
storefrontAccessToken:“token”,
},
取来
);
const ProductList=class{
异步getProductList(){
var productList=[];
const products=await client.product.fetchAll();
products.forEach((产品)=>{
常数p=新产品(
product.availableForSale,
product.createdAt,
产品说明:,
product.id,
产品图片,
产品选项,
product.productType,
product.dat,
产品名称,
产品变量
);
p、 打印产品();
productList.push(p);
});
log(“大小:+productList.length”);
返回产品列表;
}
};
module.exports=产品列表;