我使用的Chrome应用程序对我来说非常合适,但是其他用户在启动时会收到错误Uncaught ReferenceError: Promise is not defined
。出于某种原因,它并不了解Promise是什么。代码在我的结尾完美运行,我以前从来没有得到过这个错误,但用户每次都得到它。这可能是什么问题?
答案 0 :(得分:4)
用户将Chrome更新为最新版本,并且显然已将其修复。我不知道怎么样,因为他的版本是从2013年12月开始的,当然Promise工作了。我不知道。这肯定不是代码的问题,因为我运行的是用户运行的相同版本,我从未遇到过该错误。
但是 - 显然是固定的。
编辑:显然Promise仅在Chrome 32之后才有效,所以是的,这就是错误的原因。
答案 1 :(得分:2)
要支持IE及其他浏览器的旧版本,您应该考虑为Promise对象加载polyfill。
您可以使用带有<script>
标记的开箱即用的实施here。
答案 2 :(得分:0)
Android 4.x浏览器承诺
我在Android 4.X浏览器中遇到了类似的问题。我在webpack配置中使用es6-promise解决了这个问题: 承诺:'es6-promise'
plugins: [
//tells webpack where to store data about your bundles.
new BundleTracker({filename: './webpack-stats.json'}),
//makes jQuery available in every module
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery',
Promise: 'es6-promise'
}),
// Configure path for served CSS files ("desktop_css" will be served as /dist/desktop_css.css)
new ExtractTextPlugin('[name].css'),
],
我可以使用Promise:http://caniuse.com/#feat=promises
一些相关链接:
答案 3 :(得分:0)
不是该领域的专家,但这也许会对某人有所帮助。
在Android 4.4的Cordova Android应用上也遇到了同样的问题。
通过运行此命令修复
1. cordova plugin rm cordova-plugin-inapppurchase --save
2. cordova plugin add https://github.com/AlexDisler/cordova-plugin-inapppurchase#1968e41d173481eb2e6a536fdc55cc9e9253e6d5 --save