React Native - можно ли загрузить несколько ресурсов с помощью rn-fetch-blob?
Есть ли способ загрузить массив объектов (из.mp4, .jpg и т. Д.) С помощью rn-fetch-blob? Прямо сейчас этот код захватывает единственный URL-адрес.mp4, но что, если у меня есть массив.mp4, смешанный с некоторым.jpg? Как бы я сделал такое?
скажем, у меня есть данные:
const data = [
{media: url.jpg},
{media: url.mp4},
{media: url.mp4},
{media: url.jpg}
]
Как мне настроить мой выбор, чтобы он проходил через цикл данных, и я мог что-то делать после CameraRoll?
RNFetchBlob.config({
fileCache: true,
appendExt: 'mp4',
}).fetch(
'GET',
'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4',
)
.then(res => {
CameraRoll.saveToCameraRoll(res.path())
.then(async () => {
// works
})
.catch(err => console.log('err:', err));
});
Заранее спасибо за помощь!
Изменить: я не тестировал это, но, просто глядя на то, что я написал, это будет проблемой?
for ( let foo of data ) {
// write out some code to see if the url has .mp4 or .jpg extension?
RNFetchBlob.config({
fileCache: true,
appendExt: 'mp4', // variable of the correct extension
}).fetch(
'GET',
foo.media, // from the data object?
)
.then(res => {
CameraRoll.saveToCameraRoll(res.path())
.then(async () => {
// works
})
.catch(err => console.log('err:', err));
});
}
Или есть более простой способ сделать это?
1 ответ
Решение
Вы можете сделать что-то вроде этого кода:
const data = [
{media: url.jpg},
{media: url.mp4},
{media: url.mp4},
{media: url.jpg}
]
data.map((item) => {
const extention = item.media.split(".").pop(); // <-- get item extention
RNFetchBlob.config({
fileCache: true,
appendExt: extention, // <-- extention
}).fetch(
'GET',
item.media, // <-- item url
)
.then(res => {
CameraRoll.saveToCameraRoll(res.path())
.then(async () => {
// works
})
.catch(err => console.log('err:', err));
});
})