Чтобы описать функцию, которую я имею в упрощенном виде, я хочу загрузить большой набор изображений, в моем случае ~ 50 единиц. Я использую рекурсивную попытку.
Таким образом, я запускаю все во внешней функции и повторяю, пока каждое изображение было загружено. Image-source загружается в Image-объект и переводится в Canvas для получения правильного формата src для сохранения. Дополнительная информация: Я не могу загрузить их в кучу, приходится делать это изображение за изображением.
После загрузки примерно половины изображений приложение вылетает. Я предполагаю, что он думает, что находится в тупике, что вызывает аборт. Любая идея, как сказать Ionic, что эти ситуации следует игнорировать?
Протестировано на различных Android-устройствах, поэтому версии ОС (4.4 - 8.1) не должны иметь значения.
КОД
constructor(...) {
this.downloadImage(this.images);
}
downloadImage(images) {
... downloadStuff...
var img = new Image();
img.crossOrigin = 'Anonymous';
img.onload = function() {
var canvas = document.createElement('canvas');
canvas.height = img.height;
canvas.width = img.width;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0, img.width, img.height);
var src = canvas.toDataURL('image/jpeg');
saveImg(src);
images.splice(0,1)
if(images.length == 0) {
alert("DONE!!");
} else {
this.downloadImage(results);
}
}
img.src = images.photo_url;
}
Память
Журнал ошибок Android Studio:
A / libc: фатальный сигнал 4 (SIGILL), код 1, адрес ошибки 0xd4502e96 в tid 23363 (Chrome_InProcRe), pid 23231 (ft.xxx)
E / SurfaceFlinger: не удалось найти слой (SurfaceView - xxx.MainActivity # 0) в родительском слое (без родителя).