Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Ionic 2/TypeScript承诺动态函数列表_Typescript_Ionic Framework_Promise_Ionic2 - Fatal编程技术网

Ionic 2/TypeScript承诺动态函数列表

Ionic 2/TypeScript承诺动态函数列表,typescript,ionic-framework,promise,ionic2,Typescript,Ionic Framework,Promise,Ionic2,我是typescript和Ionic 2的新手,我正在尝试创建一个干净的代码,以获取多个图像并转换为base64,因此我需要使用“承诺”,我的最终目标是获得base64图像的列表并将其发送到我的服务器。由于我正在使用繁重的代码,我想让它变得非常干净,这是可行的,我想知道每个人的意见,谢谢。获取图片的函数是getImgs() 但是我保证。所有人都没有打过电话。 import { Component } from '@angular/core'; import { NavController, Na

我是typescript和Ionic 2的新手,我正在尝试创建一个干净的代码,以获取多个图像并转换为base64,因此我需要使用“承诺”,我的最终目标是获得base64图像的列表并将其发送到我的服务器。由于我正在使用繁重的代码,我想让它变得非常干净,这是可行的,我想知道每个人的意见,谢谢。获取图片的函数是getImgs()

但是我保证。所有人都没有打过电话。

import { Component } from '@angular/core';
import { NavController, NavParams, ModalController } from 'ionic-angular';
import { ImagePicker } from 'ionic-native';

@Component({
  selector: 'page-cadastrar-post',
  templateUrl: 'cadastrar-post.html'
})
export class CadastrarPostPage {

  imgs: Array<any> =[];

  constructor(public navCtrl: NavController, public navParams: NavParams, public modalCtrl: ModalController) {


  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad CadastrarPostPage');
  }

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

  getImgs() {

    var options = {
      maximumImagesCount: 5,
      quality: 80
    };

    ImagePicker.getPictures(options).then((results) => {

      for (var i = 0; i < results.length; i++) {
        this.imgs.push(this.convertFileToDataURLviaFileReader(results[i]));
      }

    }, (err) => { });

    Promise.all(this.imgs).then((results: any[]) => {
      alert(results[0]);
      //finally
    });

  }

}
我想不出我错过了什么,一切似乎都很好。

import { Component } from '@angular/core';
import { NavController, NavParams, ModalController } from 'ionic-angular';
import { ImagePicker } from 'ionic-native';

@Component({
  selector: 'page-cadastrar-post',
  templateUrl: 'cadastrar-post.html'
})
export class CadastrarPostPage {

  imgs: Array<any> =[];

  constructor(public navCtrl: NavController, public navParams: NavParams, public modalCtrl: ModalController) {


  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad CadastrarPostPage');
  }

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

  getImgs() {

    var options = {
      maximumImagesCount: 5,
      quality: 80
    };

    ImagePicker.getPictures(options).then((results) => {

      for (var i = 0; i < results.length; i++) {
        this.imgs.push(this.convertFileToDataURLviaFileReader(results[i]));
      }

    }, (err) => { });

    Promise.all(this.imgs).then((results: any[]) => {
      alert(results[0]);
      //finally
    });

  }

}
从'@angular/core'导入{Component};
从“离子角度”导入{NavController、NavParams、ModalController};
从“离子本机”导入{ImagePicker};
@组成部分({
选择器:“页面地籍公告”,
templateUrl:'cadastar post.html'
})
导出类地籍图{
imgs:Array=[];
构造函数(公共navCtrl:NavController、公共navParams:navParams、公共modalCtrl:ModalController){
}
ionViewDidLoad(){
log('ionViewDidLoad地籍图片');
}
convertFileToDataURLviaFileReader(url){
返回新承诺(功能(解决、拒绝){
var xhr=new XMLHttpRequest();
xhr.onload=函数(){
var reader=new FileReader();
reader.onloadend=函数(){
解析(reader.result);
//回调(reader.result);
}
reader.readAsDataURL(xhr.response);
};
xhr.open('GET',url);
xhr.responseType='blob';
xhr.send();
});
}
getImgs(){
变量选项={
最大图像:5,
品质:80
};
ImagePicker.getPictures(选项)。然后((结果)=>{
对于(var i=0;i{};
Promise.all(this.imgs).然后((结果:any[])=>{
警报(结果[0]);
//最后
});
}
}

如果您要求代码审查,那么错误的地方也是如此。如果您有特定的问题,请清楚地说明。要查看工作代码,请转到抱歉,我现在更清楚了