strlen(base64_decode($encoded_data));
И как основное правило, кодировка base64 увеличивает исходные данные в размере примерно на 33%
Прежде всего, избегайте конструктора Promise
antipattern ! Ваш код axios_call
должен выглядеть лучше просто так:
return axios({
...
}).catch(err => {
return { ..., error: err };
});
Затем при каждом вызове этого API отклоненный случай обрабатывается без
blockquote>catch
. Я никогда не обрабатывал отклоненное обещание, как это раньше, поэтому я не уверен, что это вызовет какие-либо проблемы, или это просто другой стиль кода, и он тоже отлично работает.Это работает, но это не хорошо. Этот стиль обработки ошибок странный и действительно не идиоматический. У него те же проблемы, что и у традиционного API обратного вызова в стиле узла с отдельными параметрами
error
иresult
:
- обещание не может знать, обработали ли вы ошибку или нет. Вы не получите никаких необработанных предупреждений об отклонении .
- Вы всегда должны написать код для работы с
res.error
, хотите вы этого или нет. При обычном использовании обещания вы могли бы просто предоставить отдельные обратные вызовыonFulfill
иonReject
, и опускание последнего даст вам разумное поведение по умолчанию при пересылке ошибки, а не просто ее отбрасывании.Я не вижу никаких преимуществ, которые мог бы дать ваш стиль, поэтому я бы рекомендовал избегать этого и использовать обычные отклонения обещаний.