找不到变量:iOS 7 上的 Promise

Posted

技术标签:

【中文标题】找不到变量:iOS 7 上的 Promise【英文标题】:Can't find variable: Promise on iOS 7 【发布时间】:2017-01-29 14:40:00 【问题描述】:

ios 7 Safari 报错Can't find variable: Promise:

new Promise(function(resolve, reject) 
.
.
.

白色其他浏览器没有这个问题,我发现了这个similar question,罗伯特给出了一个解决方案,添加new Ember.RSVP.Promise而不是new Promise

我的问题是我没有使用 jQuery,这使得所有浏览器都返回一个错误,即 Ember 未定义,我发现添加 Ember.min.js 解决了这个问题,但这增加了额外的 129.96 KB 到我的对我的项目来说根本不适合的页面。

我只是想解决 iOS7 的问题,如果知道他如何告诉我们的人,我将不胜感激。

【问题讨论】:

【参考方案1】:

对于原生不支持 Promise 的浏览器,您需要包含一个 polyfill。这是一个易于使用的轻量级:

https://github.com/taylorhakes/promise-polyfill

【讨论】:

太棒了!这对帕特里克很有用,非常感谢你在这方面的帮助。 很高兴听到这个消息! ☺️【参考方案2】:

您的浏览器根本不支持 Promise,因此您必须自己提供一个。在javascript中实现promise并不难,你可以使用已经制作的代码或babel。

如果你想实现promise,你可以使用这个 https://gist.github.com/unscriptable/814052

【讨论】:

感谢 Tomir 的回复,在我的 header 中包含提到的脚本后,我的 promise 函数不再起作用,no errors,除了包含文件,我是否应该做任何修改?

以上是关于找不到变量:iOS 7 上的 Promise的主要内容,如果未能解决你的问题,请参考以下文章

参考错误:找不到变量:ChildBrowser、Cordova 1.7.0、jQueryMobile 1.0.1、iOS 5.1

在 iOS 14.2 上找不到变量 webkit

Cordova 找不到变量:NativeStorage

Safari 14.1.2 - 找不到变量:MediaRecorder

在iOS中找不到“GoogleMobileAds”模块

ReferenceError:找不到变量:__gCrWeb