gpt4 book ai didi

javascript - Mongoose promise 不起作用

转载 作者:行者123 更新时间:2023-12-01 03:09:58 25 4
gpt4 key购买 nike

我的 Mongoose 函数忽略 promise 查询并立即结束,无需等待其他步骤

exports.editProduct = (id, data) => {
Product.findById(id)
.then((data) => {
var imgS3arr = data.img;
var tempArr = [];
var i = imgS3arr.length
while (i--) {
if (!imgS3arr[i].match(/https:\/\/s3.eu-central-1.amazonaws.com\/es-shop\//g)) {
tempArr.push(imgS3arr[i])
imgS3arr.splice(i, 1)
}
}
return tempArr
})
.then((tempArr) => {
var tempArrS3 = []
return Promise.all(tempArr.map((img, i) => {
return fetch.remote(img).then((base) => {
var buf = Buffer.from(base[0], 'base64');
var imgS3 = {
Key: data.title.replace(/( )|(")/g, "_") + "_" + Math.random().toString(36).substring(2),
Body: buf,
ContentEncoding: 'base64',
ContentType: 'image/jpeg'
};
return s3Bucket.putObject(imgS3).promise().then((data) => {
tempArrS3.push('https://s3.eu-central-1.amazonaws.com/es-shop/' + imgS3.Key)
console.log(tempArrS3)
}).catch((err) => {
throw err;
});
});
}))
.then((tempArrS3) => {
edited.title = data.title;
edited.img = imgS3arr.concat(tempArrS3);
return edited
});
})
.then((edited) => {
console.log(edited)
return edited.save();
});
}

There is a point where I call this function

我认为,我使用 promise 是不对的

有人可以帮我解决这个麻烦吗?

最佳答案

您忘记在 editProduct 函数中调用 return 语句:

exports.editProduct = (id, data) => {
return Product.findById(id);
...

关于javascript - Mongoose promise 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com