使用诺言时显示JS / HTML按钮状态/状态?

杜拉

我试图控制从端点获取某些数据的按钮的状态或状态,该端点的返回时间未知或可能超时。

我的按钮是典型的HTML <button>,它使用onclick='doWork();'

我为默认状态(提交),单击(加载)和完成(完成)定义了类。

我必须使用此请求API(https://developers.freshsales.io/docs/request-api/)来调用我的端点。

请求API示例:

client.request.get("URL", options)
  .then(
    function(data) {
      //handle "data"
      //"data" is a json string with status, headers, and response.
    },
    function(error) {
      //handle failure
    }
  );

方法

  • 我的方法是将按钮设置为加载状态doWork();
  • 交换类中function(data)的承诺的回报,或返回交换类function(error)

样例代码:

function doWork(){
 $('#btnSave').addClass('loading');
 client.request.get("URL", options)
  .then(
    function(data) {
       $('#btnSave').removeClass('loading');
       $('#btnSave').addClass('completed');
      // do other stuff
    },
    function(error) {
       $('#btnSave').removeClass('loading');
       $('#btnSave').addClass('failed');
       // do some other stuff
    }
  );
}

问题

  • 有没有更简单的方法可以做到这一点?这似乎是一个常见的用例
  • 在初始then()返回后链接和处理按钮状态(在中处理状态)是否有任何优势.request.get.then().then(//Handle button state here)
  • 重置按钮是为了.catch()防止用户陷入加载状态,还是通过某种超时来重置按钮更好地服务我?

我仍然信守诺言,因此感谢能帮助我学习更多知识的见解。

Naveen Chahar

您使用的方法很好,并且不需要链接,因为您只有一个异步调用。处理多个异步调用时,链接很有用。

至于第三个问题,我不明白您将在哪里使用catch,因为您的请求API(https://developers.freshsales.io/docs/request-api/)不支持它(至少不是根据文档)。您也可以在回调函数中处理请求超时,以解决以下错误:

    function doWork(){
     $('#btnSave').addClass('loading');
     client.request.get("URL", options)
     .then(
      function(data) {
         $('#btnSave').removeClass('loading');
         $('#btnSave').addClass('completed');
         // do other stuff
      },
      function(error) {
         if(error.status == 504){
           console.log('request timeout');
           //do whatever you want
         }
         $('#btnSave').removeClass('loading');
         $('#btnSave').addClass('failed');
         // do some other stuff
      }
     );
     }

另外,由于文档中提到的请求超时默认为“ 6秒”,因此您不会长时间处于加载状态。如果请求超时,则错误回调将处理错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

仅在单选按钮处于活动状态时才“必需” HTML

来自分类Dev

根据对象状态在js / html中动态创建按钮

来自分类Dev

使用状态覆盖按钮backgroundColor

来自分类Dev

填写输入字段时,如何使按钮状态处于活动状态?

来自分类Dev

单选按钮未显示为选中状态

来自分类Dev

使按钮的活动状态显示我的搜索框

来自分类Dev

单选按钮未显示为选中状态

来自分类Dev

按状态显示/隐藏按钮javascript

来自分类Dev

禁用的单选按钮显示为选中状态

来自分类Dev

在页面加载时检查/设置按钮状态

来自分类Dev

滚动和恢复时按钮的更改状态

来自分类Dev

HTML按钮的点击状态

来自分类Dev

HTML按钮的点击状态

来自分类Dev

使用JQuery的单选按钮状态检查的组合

来自分类Dev

使用按钮元素onClick的值更新状态

来自分类Dev

如何使用MonkeyTalk命令验证按钮的状态

来自分类Dev

更改按钮状态时显示/隐藏子视图

来自分类Dev

即使单击页面上的按钮,Selenium仍会使用页面的先前状态。如何更新到浏览器/ HTML代码的状态?

来自分类Dev

使用touchListener和clickListener处于突出显示状态的左侧按钮

来自分类Dev

按下辅助按钮时,关闭按钮的活动状态

来自分类Dev

当按钮状态改变时,按钮的内容外观也会改变

来自分类Dev

仅在诺言处于活动状态时如何显示和隐藏弹出窗口?反应

来自分类Dev

ReactJS:使用浏览器按钮导航时保存状态

来自分类Dev

使用“向上”按钮导航时,“父活动”的状态不会保留

来自分类Dev

使用AngularJS将Twitter Bootstrap按钮状态更改为在按钮组中处于活动状态

来自分类Dev

使用第二个按钮更改按钮状态

来自分类Dev

如何使 HTML 文本显示为禁用状态?

来自分类Dev

Angular - 单击按钮时使按钮处于活动状态,并在单击组中的其他按钮时处于非活动状态

来自分类Dev

保存Darkmode状态html / css / js

Related 相关文章

  1. 1

    仅在单选按钮处于活动状态时才“必需” HTML

  2. 2

    根据对象状态在js / html中动态创建按钮

  3. 3

    使用状态覆盖按钮backgroundColor

  4. 4

    填写输入字段时,如何使按钮状态处于活动状态?

  5. 5

    单选按钮未显示为选中状态

  6. 6

    使按钮的活动状态显示我的搜索框

  7. 7

    单选按钮未显示为选中状态

  8. 8

    按状态显示/隐藏按钮javascript

  9. 9

    禁用的单选按钮显示为选中状态

  10. 10

    在页面加载时检查/设置按钮状态

  11. 11

    滚动和恢复时按钮的更改状态

  12. 12

    HTML按钮的点击状态

  13. 13

    HTML按钮的点击状态

  14. 14

    使用JQuery的单选按钮状态检查的组合

  15. 15

    使用按钮元素onClick的值更新状态

  16. 16

    如何使用MonkeyTalk命令验证按钮的状态

  17. 17

    更改按钮状态时显示/隐藏子视图

  18. 18

    即使单击页面上的按钮,Selenium仍会使用页面的先前状态。如何更新到浏览器/ HTML代码的状态?

  19. 19

    使用touchListener和clickListener处于突出显示状态的左侧按钮

  20. 20

    按下辅助按钮时,关闭按钮的活动状态

  21. 21

    当按钮状态改变时,按钮的内容外观也会改变

  22. 22

    仅在诺言处于活动状态时如何显示和隐藏弹出窗口?反应

  23. 23

    ReactJS:使用浏览器按钮导航时保存状态

  24. 24

    使用“向上”按钮导航时,“父活动”的状态不会保留

  25. 25

    使用AngularJS将Twitter Bootstrap按钮状态更改为在按钮组中处于活动状态

  26. 26

    使用第二个按钮更改按钮状态

  27. 27

    如何使 HTML 文本显示为禁用状态?

  28. 28

    Angular - 单击按钮时使按钮处于活动状态,并在单击组中的其他按钮时处于非活动状态

  29. 29

    保存Darkmode状态html / css / js

热门标签

归档