Vorrei utilizzare lo Fetch API in un'estensione del browser per scaricare una risorsa e calcolare un suo hash. Le seguenti opere (utilizzando crypto attraverso Browserify)recupero risorse, calcolo dell'hash, ritorno della promessa
fetch(url).then(function(response) {
return response.blob();
}).then(function(data) {
var a = new FileReader();
a.readAsBinaryString(data);
a.onloadend = function() {
var hash = crypto.createHash(hashType);
hash.update(a.result, 'binary');
return hash.digest('hex');
};
})
ma ha lo svantaggio che devo aspettare per a.onloadend
mentre il contesto in cui mi piacerebbe incorporare richiede un Promise
da restituire. Inoltre, sembra piuttosto strano recuperare prima l'intero blob, quindi leggerlo in uno FileReader
solo per scaricarlo in createHash
in seguito.
Eventuali suggerimenti?
Forse questa domanda sarà più adatta per http: //codereview.stackexchange.com? – Pavlo
Questa domanda sembra essere adatta per [Code Review.SE] (http://codereview.stackexchange.com/), a condizione che (a) tu voglia rivedere ogni aspetto del tuo codice, non solo alcuni, (b) il tuo codice è già funzionante_, e (c) stai richiedendo una revisione di _concrete, vero codice_, non di un disegno astratto (indipendentemente dal fatto che sia espresso o meno come codice). Se siete d'accordo con tutti questi, leggete su [cosa c'è in argomento] (http://codereview.stackexchange.com/help/on-topic), e, se la vostra domanda è adatta, cancellatela qui e ripubblicatela su CR . – Phrancis
(a) e (c) non sono applicabili qui, quindi immagino che non sia un adattamento. –