Sto usando il Angular version of the $q library tuttavia questo sarebbe anche rilevante per il original q library.preprocessore per sostituire le parole chiave javascript
Esempio di utilizzo:
$q
.when(someFunction)
.then(function(){
// ..
})
.catch(function(){
// ..
})
.finally(function(){
// ..
});
Purtroppo alcuni nomi di funzioni (ad esempio finally
) in conflitto con javascript parole chiave.
Dalla riferimento angolare:
"Perché finalmente è una parola riservata in JavaScript e parole chiave riservate non sono supportati come nomi di proprietà di ES3, avrete bisogno di invocare il metodo come promise['finally'](callback)
per rendere il codice Compatibile con IE8 e Android 2.x. "
ECMA-262, lo standard ufficiale, disponibile presso http://www.ecma-international.org/publications/standards/Ecma-262.htm, afferma:
7.6.1.1 Parole
I seguenti token sono parole chiave ECMAScript e possono non essere utilizzati come Identificatori nei programmi ECMAScript.
break do instanceof typeof case else new var catch finally return void continue for switch while debugger function this with default if throw delete in try
Ciò significa che il primo esempio deve essere cambiato nel seguente codice per farlo funzionare con IE8:
$q
.when(someFunction)
.then(function(){
// ..
})
['catch'](function(){
// ..
})
['finally'](function(){
// ..
});
Dato che questo codice è più difficile da mantenere Sto cercando un javascript preprocessore (forse un compito da grunt) che trasforma il primo esempio nella versione compatibile con IE8.
Esiste un preprocessore?
Non ce n'è uno che io conosca. Probabilmente dovresti implementare il tuo. – RevanProdigalKnight
@RevanProdigalKnight conosci un buon progetto di riferimento con il supporto della mappa di origine? – jantimon
Sfortunatamente, non proprio. Quando ho implementato un [preprocessore C-style] (http://csserver.evansville.edu/~wg24/senior_project/other/node.js/preprocessor.js), non ho usato una mappa sorgente. – RevanProdigalKnight