【发布时间】:2015-10-20 07:12:56
【问题描述】:
我有一个运行良好的功能。我只想根据承诺返回真或假。
//I want this function to return a simple true or false!!!
function isAppOnline() {
var is_connected = connectivityMonitor.isInternetConnected();
is_connected.then(function(result) {
console.log('INTERNET_CHECK_API : app online');//works fine
return true;//this is not being returned
}, function(error) {
console.log('INTERNET_CHECK_API : app offline');//works fine
return false;//this is not being returned
});
}
但是当我调用这个函数时,
is_online = isAppOnline();
is_online 总是 undefined 。为什么函数不能返回简单的布尔值?
更新:
这就是我想要做的: 我只是想打开一个弹出窗口,通知用户他离线。我在 10 秒后定期调用函数 isAppOnline。这个功能已经在我的工厂中使用了一个承诺。我不想让事情变得过于复杂,但对我来说很重要的是这个函数返回一个布尔值,所以基于此,我可以采取相应的行动。
【问题讨论】:
-
根据您的编辑,您可以将此弹出逻辑剥离到它自己的控制器中,无论如何这可能是个好主意。该控制器可以与页面之间的其他静态内容一起放置,您的导航是否在其自己的控制器中,它可以在应用程序中处于与此类似的级别?那么你只需要在一个地方使用 Promise,而且它更加模块化。唯一值得关注的原因。也使它更可测试。你甚至可以把它放在一个指令中,然后把它放在你想要的地方。
-
此代码适用于所有控制器。 :)
标签: angularjs ionic-framework ionic angular-promise