如何将回调函数与MessageBox分开。

2020-08-22 22:55发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在尝试创建一个在用户按下确认消息框上的删除按钮后删除数据的功能。

我知道它将遵循以下代码;

 MessageBox.confirm(
  "删除数据?",{
  标题:"删除确认",
  onClose:function(oAction){
    开关(oAction){
      情况"确定":
      /*做删除操作*/
        打破;
      默认:
        打破;
  }
 ); 

但是,我想知道如何将回调函数与MessageBox的代码分开,如下所示,因为此应用程序在删除后需要后期处理,因此代码将更长,我认为不应将其包含在代码中 调用MessageBox。

 ~~~~~~~
 MessageBox.show(
  "删除数据?",{
  标题:"删除确认",
  onClose:"。afterDeleteConfirmation"
 );

 ~~~~~~

 afterDeleteConfirmation:function(oAction){
    开关(oAction){
      情况"确定":
      /*做删除操作*/
        打破;
      默认:
        打破;
  } 

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我正在尝试创建一个在用户按下确认消息框上的删除按钮后删除数据的功能。

我知道它将遵循以下代码;

 MessageBox.confirm(
  "删除数据?",{
  标题:"删除确认",
  onClose:function(oAction){
    开关(oAction){
      情况"确定":
      /*做删除操作*/
        打破;
      默认:
        打破;
  }
 ); 

但是,我想知道如何将回调函数与MessageBox的代码分开,如下所示,因为此应用程序在删除后需要后期处理,因此代码将更长,我认为不应将其包含在代码中 调用MessageBox。

 ~~~~~~~
 MessageBox.show(
  "删除数据?",{
  标题:"删除确认",
  onClose:"。afterDeleteConfirmation"
 );

 ~~~~~~

 afterDeleteConfirmation:function(oAction){
    开关(oAction){
      情况"确定":
      /*做删除操作*/
        打破;
      默认:
        打破;
  } 
付费偷看设置
发送
4条回答
太Q了
1楼 · 2020-08-22 23:10.采纳回答

使用Promise进行回调。

https://developer.mozilla.org/ zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise

参见下面的代码

 fnConfirmationMsg:function(sMessage,sConfirmation){

   返回新的Promise((fnResolve,fnReject)=> {
         MessageBox.show(sMessage,{
              标题:sConfirmation,
              onClose:fnResolve
              }
         );
   });
  };

 deleteRecord:function(oData){
   this.fnConfirmationMsg("删除数据?","删除确认").then((sAction)=> {
         开关(oAction){
          情况"确定":
           /*做删除操作*/
            打破;
         默认:
            打破;
       })
 }; 
bbpeas
2楼-- · 2020-08-22 23:14

谢谢。

这就是我想要的。 该程序也需要对删除操作进行错误处理,因此我必须做出Promise链。

您的代码也可以使用。

Climb_Ma
3楼-- · 2020-08-22 23:13

您可以创建一个单独的函数并从回调中调用它。 使用对此的引用,但是您需要将其分配给messagebox函数之外的另一个变量。

 ~~~~~~~

 var that = this;
 MessageBox.show(
  "删除数据?",{
  标题:"删除确认",
  onClose:function(oAction){
      that.afterDeleteConfirmation(oAction);
      }
 );

 ~~~~~~

 afterDeleteConfirmation:function(oAction){
    开关(oAction){
      情况"确定":
      /*做删除操作*/
        打破;
      默认:
        打破;
  } 

致谢

Anmol

浮生未央
4楼-- · 2020-08-22 23:32

您的答案也有效,并且我学习了如何使用" that"来调用函数。 谢谢。

一周热门 更多>