gpt4 book ai didi

javascript - 部署后的 ionic 应用程序给出 ReferenceError : Promise is not defined

转载 作者:搜寻专家 更新时间:2023-11-01 08:35:43 26 4
gpt4 key购买 nike

我正在制作我的第一个 Ionic 应用程序。它的一部分使用 promise 。

下面的例子说明了这个问题。(在 View 中,我有一个启动 $scope.test 的按钮,它执行 testProm() 函数)。

angular.module('myApp.controllers', [])

.controller('DashCtrl', function($scope, $state) {
$scope.test = function() {
testProm();
}
});

function testProm() {
console.log('1. Function testProm starting...');
return new Promise(function(resolve, reject) {
console.log('2. Hi from Promise');
var something = ' Some text ';
resolve(something);
}).then(function(something) {
console.log('3. Hi again. Something is: ' + something);
});
}

在浏览器(Firefox、Chrome)中以及部署到装有 Android 5.1.1 的 Sony Xpreria 平板电脑时一切正常。

当我部署到带有 Android 4.4.2 的廉价 Woxter QX103 平板电脑时,问题就开始了。在这种情况下,当我尝试运行我的函数时,它会在控制台中出现以下错误:

ReferenceError: Promise is not defined
at testProm (file:///android_asset/www/js/controllers.js:825:14)
at Scope.$scope.test (file:///android_asset/www/js/controllers.js:29:5)
at fn (eval at <anonymous> (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:26457:15), <anonymous>:4:203)
at file:///android_asset/www/lib/ionic/js/ionic.bundle.js:62386:9
at Scope.$eval (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:29158:28)
at Scope.$apply (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:29257:23)
at HTMLButtonElement.<anonymous> (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:62385:13)
at HTMLButtonElement.eventHandler (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:16583:21)
at triggerMouseEvent (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:2948:7)
at tapClick (file:///android_asset/www/lib/ionic/js/ionic.bundle.js:2937:3)

奇怪的是,我在使用 CouchDB 时也使用了 promises,而且它工作得很好。我做错了什么?这是我的第一个 javascript,我对它还很缺乏经验。

最佳答案

我认为旧浏览器根本不支持它,如图所示 here .根据我的经验,这可以通过使用 Angular 自己的 Promises 实现轻松解决,如下所示:

return $q(function(resolve, reject) {
setTimeout(function() {
if (okToGreet(name)) {
resolve('Hello, ' + name + '!');
} else {
reject('Greeting ' + name + ' is not allowed.');
}
}, 1000);
});

您可以在 documentation 中找到有关 $q 服务的更多信息.因此,在您的代码中,如果您要将 new Promise 替换为 $q 并确保将其定义为依赖项,那么您就可以开始了。

关于javascript - 部署后的 ionic 应用程序给出 ReferenceError : Promise is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36952569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com