我被调用时具有以下代码,但出现错误,提示回调不是最后一个回调实例中的函数。 (callback(“ 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令牌时,它将返回错误消息。
答案 0 :(得分:2)
呼叫时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")
}
};