Comments (3)
@arichiardi Thanks for your feedback and suggestion about "make an option to chose what want to inject on".
Currently, every Azure Storage REST API defines expected response status codes, such as 200 or 202.
Other response codes will be treated as unexpected, which means something unexpected happens. A promise rejected will happen.
These unexpected responses needs careful attention to explicitly handled, Otherwise, some logical errors will be hidden and may resulting more unexpected behaviors hard to debug.
from azure-storage-js.
Thank you for answering! Yep that is exactly what happen and what I am debating.
The JS Promise rejections are a replacement of a catch
clause that in this and many languages is a kind of error that interrupts the code flow and forces you to handle things, losing context usually.
In summary it should be used sparingly imho and not to control the program flow.
In my understanding a 304 is a normal condition that happens regularly if you cache, not an "exception". That is why it should not interrupt the control flow, aka, I would rather put that if
in the .then
.
from azure-storage-js.
@arichiardi Totally understand! Will discuss the details for the injection enhancement, as it's a potential 'big" change covering most of convenience layer methods. I'm afraid we cannot take this in recent changes. Do thanks to your valuable feedback.
We want to have a good balance between "easy coding" and "code quality". The default way about forcing handling all unexpected scenarios helps building up a robust application, but needs more coding efforts.
from azure-storage-js.
Related Issues (20)
- This repo is missing important files HOT 1
- high-level samples Abort.timeout duration HOT 2
- can I use this library in a React Native app? HOT 10
- Aborter throws timeout error even though it succeeds on download of BlockBlobUrl HOT 15
- Missing setProperties function for blob HOT 2
- Export RetryPolicyType in index.ts HOT 1
- Unable to set file HTTP headers HOT 1
- Using application/json header for file upload (x-ms-blob-type error) HOT 2
- Support for Angular4 (Typescript < 2.4) HOT 4
- how to handle viewing files that are stored in azure storage with multiple mime types HOT 7
- Cannot find name 'Event' HOT 9
- Aborter does not abort uploads that are in timeout / retrying HOT 2
- Gracefully handle 404 of reading from blob HOT 2
- [Tests] incorrect assert.ok() on result from string.indexof HOT 1
- downloadBlobToBuffer may download error ranges when customize non zero offset with count HOT 1
- Question: file service API is so confusing :( :( HOT 2
- [Notice] This Project has been Moved to Azure SDK Central Repository
- How to list blobs from virtual directory in latest nodejs SDK? HOT 2
- How to get Content-MD5 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from azure-storage-js.