【发布时间】:2021-06-01 17:21:11
【问题描述】:
我想返回一个值并将其存储在一个变量中。我不知道这是否可能,但我试过了
let demo = await Promise.all(
Shop.findAll({
where: {
product_id: child.id,
},
attributes: ["id", "address"],
})
.then((adds) => {
adds.map(async function (add) {
let path = add.address;
return path;
});
})
.catch(function (err) {
reject(err);
})
);
console.log(demo);
我得到的只是demo = []
- 正如我预期的演示输出
New York
London
Mumbai
Sydney
- 实际上我得到了
demo= []
我想要做的是我需要父函数中的商店地址,因为 Shop 是我的子函数,所以我的实际代码如下所示
Owner.findAll({
raw: true,
where: {
id: owner.id,
},
attributes: ["id", "name", "address"],
})
.then(async (children) => {
await Promise.all(
children.map(async function (child) {
let ownerName = child.name;
let demo = await Promise.all(
Shop.findAll({
where: {
product_id: child.id,
},
attributes: ["id", "address"],
})
.then((adds) => {
adds.map(async function (add) {
let path = add.address;
return path;
});
})
.catch(function (err) {
reject(err);
})
);
// I want to use demo in getStatus function
await getStatus(ownerName,demo);
})
);
})
.catch(function (err) {
reject(err);
});
我想在我的所有者数据中使用商店数据
【问题讨论】:
-
.catch(function (err) { reject(err); })让我想起了Promiseconstructor antipattern? -
是的@Bergi,它是一个 Promise 构造函数
标签: node.js async-await promise nodes