我有以下3种方法。 _uploadImages()
接受images
个对象数组。我希望_uploadImages()
首先完成并返回所有上传图像的URL。然后,我想将这些网址传递给另一种方法,以保存在另一台服务器上。
但是问题是
_uploadImages()
立即返回一个空数组。
_uploadImages(images) {
let imageUrls = [];
images.map((image, index) => {
let formData = new FormData();
let file = {
uri: image.path,
type: image.mime,
name: image.path.substring(image.path.lastIndexOf('/') + 1),
size: image.size
}
formData.append('file', file);
formData.append('thumb', 'questions');
api
.uploadImage(formData)
.then((response) => {
if (response.data != null) {
let img = {
name: 'Image ' + (++index),
url: response.data.body.file,
type: 'image'
};
imageUrls.push(img);
}
//console.log(imageUrls);
})
.catch((error) => {
console.log(error);
});
});
return JSON.stringify(imageUrls);
}
_saveQuestion(postData) {
console.log(postData);
api
.postQuestion(postData)
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
}
_onQuestionFormSubmit() {
let images = this.state.images;
let imageUrls = this._uploadImages(images);
console.log(imageUrls);
let postData = {
medias: imageUrls
}
this._saveQuestion(postData);
}
有人可以对此提出想法吗?