Я хотел бы реорганизовать фрагмент кода как следующий, но я думаю, что у меня возникли проблемы с пониманием закрытия здесь.
Оба параметра requestParam
и reqParam
не undefined
при reqParam
функции обратного вызова после закрытия диалога.
_newConnection: function() {
var reqParam = this.functionOne();
var requestParam = {data: "data"};
var oDialog = new sap.m.Dialog()
oDialog.attachAfterClose(null, callbackFunction.bind(reqParam, requestParam));
}
callbackFunction: function(requestParam, reqParam) {
if (requestParam.data) {
reqParam.setId(requestParam.data.connectionId);
} else {
reqParam.setId("");
}
this.fireSomeThingElse({
"change" : "change"
});
}
первый аргумент bind будет служить this
, правильно:
oDialog.attachAfterClose(null, callbackFunction.bind(null, reqParam, requestParam));
но это не вызывает неопределенные аргументы. Я не могу решить вашу точную проблему из-за отсутствия контекста, но я делаю это, чтобы связать операции с подготовленными аргументами
var _newConnection = function() {
callbackFunctionBinded = callbackFunction.bind(null, 1, 2);
callbackFunctionBinded()
}
var callbackFunction = function(arg1, arg2) {
console.log(arg1, arg2)
} // => 1 2