如何在ionic3中调用函数内部函数?

时间:2018-05-23 05:43:06

标签: angular ionic3

如何调用ionic3中的函数内部函数我已尝试使用此函数但无法正常工作,我在控制台'=>'中出错预计告诉我有人如何解决这个问题?

shareProductWithSelectedUser(event) {
  var self = this;
  var  arr1 = "";
  var  arr2 = "";
  var  arr3 = "";

  // Iterating loop - continue only after callback from Firerbase.
    var x = 0;
    var loopArray(arr1, arr2, arr3) {

    // here calling inner function for share product with three param(userId, userTypeId, callback)
    self.callFuncForShareProduct(arr1[x], arr2[x], arr3[x], (function) =>  {
       // any more items in array? continue loop
        if(x < arr1.length) {
          this.loopArray(arr1, arr2, arr3);
         };
      });
      // start 'loop'
      loopArray(self.userIdListForShareProduct, self.userTypeIdListForShareProduct, self.userObjectListForShare);
    }

1 个答案:

答案 0 :(得分:3)

首先,让我们简化您的代码

{ errorCode: 'CMN-408',
      message: 'In order to call this API endpoint, user needs to have [OutboundFaxes] permission for requested resource.',
      errors:
       [ { errorCode: 'CMN-408',
           message: 'In order to call this API endpoint, user needs to have [OutboundFaxes] permission for requested resource.',
           permissionName: 'OutboundFaxes' } ],
      permissionName: 'OutboundFaxes' }

所以,你创建一个带有内部函数的函数,并希望内部函数调用自身,并调用范围之外的另一个函数。

现在。问题。

  • executeFunction(event) { var self = this; var innerFunction(args) { self.doSomething('somevariable', (function) => { if(/* expression */) { this.innerFunction(args); }; }); doAnotherFunction(); } } 是一个保留关键字,不能像lambda中那样使用。
  • 创建内部函数并不像那样工作。使用functionfunction innerFunction(args)

您可以使用第二个项目符号点中的两种方法重写代码。我将向您展示一个lambda的例子。

var innerFunction = (args) => {}

因此,在对代码进行双重处理后,我不确定您是否正在创建内部函数,但上述代码也可以解决您的其他问题。