Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从解析的延迟Angularjs获取值_Javascript_Angularjs_Ionic Framework - Fatal编程技术网

Javascript 如何从解析的延迟Angularjs获取值

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); 它显示未定义的。有人能告诉我怎样

我正在使用ionic和angularjs创建android应用程序,并使用window.requestFileSystem从存储中获取图像。所以对于这个进程,我使用了
$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
});