Javascript 如何从解析的延迟Angularjs获取值
我正在使用ionic和angularjs创建android应用程序,并使用window.requestFileSystem从存储中获取图像。所以对于这个进程,我使用了Javascript 如何从解析的延迟Angularjs获取值,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,我正在使用ionic和angularjs创建android应用程序,并使用window.requestFileSystem从存储中获取图像。所以对于这个进程,我使用了$q.defer()来处理异步进程及其工作状态,并在控制台中显示对象:console.log(deferred.promise) 但是现在,当我试图从延迟的中获取值时,承诺 var vals = deferred.promise; console.log(vals.$$state.value); 它显示未定义的。有人能告诉我怎样
$q.defer()
来处理异步进程及其工作状态,并在控制台中显示对象:console.log(deferred.promise)
但是现在,当我试图从延迟的中获取值时,承诺
var vals = deferred.promise;
console.log(vals.$$state.value);
它显示未定义的
。有人能告诉我怎样才能得到那个值吗
我的代码:
var deferred = $q.defer();
document.addEventListener("deviceready", function() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
imagePath = fileSystem.root.toURL() + 'SmaartMedia/' + splited[splitedLength-1];
deferred.resolve(imagePath);
$rootScope.$apply();
});
}, false);
var vals = deferred.promise;
console.log(vals.$$state.value);
谢谢不正确,请查看eventListener。我应该在里面。我也不认为它真的有效,因为eventListener不会在这个函数中执行,它只会被注册。没别的了。所以回报也不会起作用。没有什么好办法可以实现他的目标,因为有一个听众。
function getStuff() {
var deferred = $q.defer();
document.addEventListener("deviceready", function () {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSystem) {
imagePath = fileSystem.root.toURL() + 'SmaartMedia/' + splited[splitedLength - 1];
deferred.resolve(imagePath);
$rootScope.$apply();
});
}, false);
return deferred.promise;
}
//Get value like this
getStuff().then(function(response){
//Use value here
});