Ho iniziato a utilizzare JS Promises in un progetto di recente. Ho notato che ogni volta che uso .catch
i miei reclami JS linter. Funziona e fa quello che dovrebbe, ma ho cercato il ECMAScript spec e sembra davvero che sia giusto: dal catch
is a keyword non può essere usato come identificatore. Mi pare di capire i nomi dei metodi sono identificatori, quindi questo non è valido:Il nome del metodo 'catch' di JS Promises/A + non è valido poiché si tratta di una parola chiave JS?
Promise.reject("Duh").catch(alert);
dovrebbe essere questo, invece:
Promise.reject("Duh")['catch'](alert);
Che cosa mi manca?
i browser che non seguono le specifiche ecmaScript potrebbero sembrare diversi rispetto a quelli che lo fanno. – dandavis
Il linter si lamenta probabilmente perché cerca di essere compatibile con ES3. –
Correlati: [Supporto browser per l'utilizzo di una parola riservata come nome di proprietà in JavaScript] (http://stackoverflow.com/q/5306315/218196) ... Kangax: http://kangax.github.io/compat- table/es5/# Reserved_words_as_property_names –