远程方法递归调用自身时回调不是函数
Callback is not a function when remote method recursively calls itself
我有下面的代码,当它被调用时,我得到一个错误,说回调不是回调的最后一个实例中的函数。 (回调("UnabletoSetAcessToken"))
serviceOffering.ResetToken = function (retried, Data, options, callback) {
var filterGetSH = 'Set Token';
retried++;
if (retried < 4) {
if (Data.hasOwnProperty('Name')) {
filterGetSH = { 'where': { 'Name': Data.Name } };
serviceOffering.setToken(retried, Data, filterGetSH, options, function (error, dataBody) {
if (error) {
serviceOffering.ResetToken(retried, Data, filterGetSH, options, callback);
} else {
callback(null, dataBody);
}
});
} else if (Data.hasOwnProperty('EntityId')) {
filterGetSH = { 'where': { 'EntityId': entityData.EntityId } };
serviceOffering.setToken(retried, Data, filterGetSH, options, function (error, dataBody) {
if (error) {
serviceOffering.ResetToken(retried, Data, filterGetSH, options, callback);
} else {
callback(null, dataBody);
}
});
}
} else {
callback("UnabletoSetAcessToken")
}
};
我希望在不成功时达到最大重试次数时调用回调。我无法理解这里出了什么问题以及如何解决这个问题。
注意:- 这里的 setToken 是一种不同的远程方法,当成功使用 Oauth 令牌或将 return 错误消息。
调用时setToken
和ResetToken
的签名不匹配。
serviceOffering.ResetToken = function (retried, Data, options, callback) {
var filterGetSH = 'Set Token';
retried++;
if (retried < 4) {
if (Data.hasOwnProperty('Name')) {
filterGetSH = { 'where': { 'Name': Data.Name } };
options.filter = filterGetSH;
serviceOffering.setToken(retried, Data, options, function (error, dataBody) {
if (error) {
serviceOffering.ResetToken(retried, Data, options, callback);
} else {
callback(null, dataBody);
}
});
} else if (Data.hasOwnProperty('EntityId')) {
filterGetSH = { 'where': { 'EntityId': Data.EntityId } };
options.filter = filterGetSH;
serviceOffering.setToken(retried, Data, options, function (error, dataBody) {
if (error) {
serviceOffering.ResetToken(retried, Data, options, callback);
} else {
callback(null, dataBody);
}
});
}
} else {
callback("UnabletoSetAcessToken")
}
};
我有下面的代码,当它被调用时,我得到一个错误,说回调不是回调的最后一个实例中的函数。 (回调("UnabletoSetAcessToken"))
serviceOffering.ResetToken = function (retried, Data, options, callback) {
var filterGetSH = 'Set Token';
retried++;
if (retried < 4) {
if (Data.hasOwnProperty('Name')) {
filterGetSH = { 'where': { 'Name': Data.Name } };
serviceOffering.setToken(retried, Data, filterGetSH, options, function (error, dataBody) {
if (error) {
serviceOffering.ResetToken(retried, Data, filterGetSH, options, callback);
} else {
callback(null, dataBody);
}
});
} else if (Data.hasOwnProperty('EntityId')) {
filterGetSH = { 'where': { 'EntityId': entityData.EntityId } };
serviceOffering.setToken(retried, Data, filterGetSH, options, function (error, dataBody) {
if (error) {
serviceOffering.ResetToken(retried, Data, filterGetSH, options, callback);
} else {
callback(null, dataBody);
}
});
}
} else {
callback("UnabletoSetAcessToken")
}
};
我希望在不成功时达到最大重试次数时调用回调。我无法理解这里出了什么问题以及如何解决这个问题。 注意:- 这里的 setToken 是一种不同的远程方法,当成功使用 Oauth 令牌或将 return 错误消息。
调用时setToken
和ResetToken
的签名不匹配。
serviceOffering.ResetToken = function (retried, Data, options, callback) {
var filterGetSH = 'Set Token';
retried++;
if (retried < 4) {
if (Data.hasOwnProperty('Name')) {
filterGetSH = { 'where': { 'Name': Data.Name } };
options.filter = filterGetSH;
serviceOffering.setToken(retried, Data, options, function (error, dataBody) {
if (error) {
serviceOffering.ResetToken(retried, Data, options, callback);
} else {
callback(null, dataBody);
}
});
} else if (Data.hasOwnProperty('EntityId')) {
filterGetSH = { 'where': { 'EntityId': Data.EntityId } };
options.filter = filterGetSH;
serviceOffering.setToken(retried, Data, options, function (error, dataBody) {
if (error) {
serviceOffering.ResetToken(retried, Data, options, callback);
} else {
callback(null, dataBody);
}
});
}
} else {
callback("UnabletoSetAcessToken")
}
};