javascript - 找不到变量 : Promise on Safari

标签 javascript ios ember.js safari

我有一个网站可以在桌面版 Chrome 上完美运行(Windows 8.1OS X Mavericks)

当我在 iOS 7Safari 7.0.2 上运行它时,我在控制台上收到一条错误消息

Error while loading route: checkIfLoggedIn

它在消息中指定的成员不是路由,它是一个返回 promise 的方法。当我调试 ember 代码以找出问题所在时,我发现它拒绝了 promise,原因是

Can't find variable: Promise

我无法在此处发布我网站上的实际代码,因此我着手创建一个可以重现错误的 fiddle ,然后我想出了这个:

http://jsfiddle.net/NQKvy/851/

这在桌面版 Chrome(Windows 8.1 和 OS X Mavericks)上运行完美,但在 iOS 7 或 Safari 7.0.2 上会向控制台抛出以下错误

ReferenceError: Can't find variable: Promise

有人知道为什么这不起作用吗?

回顾一下:

  • 我已经在适用于 Windows 8.1 和 OS X Mavericks 的 Chrome 上进行了测试 - 它有效
  • 我已经在 iOS 版 Chrome 上进行了测试,但它无法正常工作
  • 我已经在适用于 iOS 和 OS X Mavericks 的 Safari 上进行了测试,但它不起作用
  • 我根本没有在 Android 上进行过测试(目前我无法访问任何设备)

这让我相信这是一个 Safari 错误,因为(如果我没记错的话)iOS 版 Chrome 使用 Safari 控件而不是 Chromium 来呈现页面

这是我用来生成错误的代码:

App.ready = function() {
    var asdf = new Promise(function (resolve) {   
        var i = 1;
        i++;
        resolve.call(this,i);
    }).then(function (result) {
        alert('I: ' + result);
    });
};

最佳答案

事实证明,在 Safari 上,您必须在创建 promise 时使用完全限定名称,否则它将无法工作:

App.ready = function() {
    var asdf = new Ember.RSVP.Promise(function (resolve) {   
        var i = 1;
        i++;
        resolve.call(this,i);
    }).then(function (result) {
        alert('I: ' + result);
    });
};

请注意“new Ember.RSVP.Promise”而不是“new Promise”。这似乎为我解决了这个问题。

关于javascript - 找不到变量 : Promise on Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22462396/

相关文章:

javascript - 如何在不触及 index.html 的情况下将外部 javascript 标签添加到 Ember JS 应用程序?

javascript - 多个 Canvas 不绘制图像

javascript - ng-swipe-down 和 ng-swipe-up 不起作用

ios - iOS 6 设置中的新 Facebook 帐户

ios - 在 xcode ui 测试执行过程中关闭设备的 wifi

templates - EmberJS : Different Layout Homepage vs Application

jquery - 在 willDestroyElement 回调中销毁 slider 实例的正确方法

javascript - 未处理的PromiseRejection警告: Error: Evaluation failed: ReferenceError: generateLink is not defined

javascript - 在 html 和 javascript 中制作图像的 360 度 View

ios - Firebase 快速返回 incored 快照