如何调用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);
}
答案 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中那样使用。function
或function innerFunction(args)
您可以使用第二个项目符号点中的两种方法重写代码。我将向您展示一个lambda的例子。
var innerFunction = (args) => {}
因此,在对代码进行双重处理后,我不确定您是否正在创建内部函数,但上述代码也可以解决您的其他问题。