如何在函数返回之前停止函数?

时间:2016-08-20 21:35:43

标签: javascript angularjs ionic-framework

我一直在使用离子框架,我需要在base64中转换图像以通过post请求发送。 这是我用来转换图像的方法

function toDataUrl(url, callback) {
    var xhr = new XMLHttpRequest();
    xhr.responseType = 'blob';
    xhr.onload = function() {
      var reader = new FileReader();
      reader.onloadend = function() {
        callback(reader.result);
      };
      reader.readAsDataURL(xhr.response);
    };
    xhr.open('GET', url);
    xhr.send();
  }

所以我的代码中的工具

if($scope.allImages.length>0){
   // $scope.allImages is an array of paths of the images
   for (var i = 0; i < $scope.allImages.length; i++) {
      toDataUrl($scope.allImages[i], function(base64File){
          alert(base64File);
          $scope.project.imgs[i]=base64File;
      });
   }
}
imprimirObjeto($scope.project.imgs);

我遇到的问题是当我尝试转换图像时。

当我首先运行我的代码时,可以看到最后一行的警告imprimirObjeto($scope.project.imgs);这是一个打印任何对象的方法。在此之后,我看到了“警告”以及base64中图像的信息

该方法运行良好,因为我可以在base64中看到带有数据的警报,但数据未保存在$ scope

在将值存储在对象中之前,有没有办法停止该功能?

抱歉我的英文。我来自墨西哥。

0 个答案:

没有答案