你们中有人尝试过将 50 多张图片上传到 cloundinary 吗?我一直在尝试,但问题是 Promise 没有得到解决(即使使用 .reflect() 并且无法上传所有图像。根据上传速度,它会失败 30% ~ 70%。
有什么方法可以完全异步并确保所有图像都正确上传吗?我使用的唯一模块是来自他们文档的 bluebird 和 cloudinary 模块。
Promisebd = require('bluebird');
function uploadimg(img, i, itemId) {
var pubID = 'a2z/toys/' + itemId + '/' + i;
// return new cloudImg.v2.uploader.upload(img, {
return cloudinary.v2.uploader.upload(img, { // works
public_id: pubID,
quality: 90
// use_filename: true,
} , function(err, res){
if(err) {
console.log(err);
}
console.log(res);
});
}
promiseArr.push(uploadimg(fullimg, i, d[0].details.detailsProductId)); // pushing the promises to Arr
Promisebd.all(promiseArr.map(function(promise) {
return promise.reflect();
})).each(function(inspection) {
if(inspection.isFulfilled()) {
console.log('The promise is the arr was fulfilled with ', inspection.value());
}else{
console.log('The promise is NOT the arr was NOT fulfilled with ', inspection.reason());
}
})
promise 你的上传img功能并尝试使用它
function uploadimgAsync(img, i, itemId) {
return new Promise(function (resolve, reject) {
var pubID = 'az/toys/' + itemId + '/' + i;
cloudinary.v2.uploader.upload(img, { // works
public_id: pubID,
quality: 90
},
function(err, res){
if(err) {
reject(err);
}
resolve(res);
});
});
}
我是一名优秀的程序员,十分优秀!