Vue.js Vue-Resource检测超时并重新发送帖子

时间:2016-12-20 10:23:06

标签: javascript http-post vue.js browserify vue-resource

将Vue资源与Vue.js v1一起使用 这也是使用vue-router运行并使用Browserfy构建的。

我有vue-resource整体上工作的帖子和获取,但我有一个特别的,偶尔出现或看起来似乎。我确认服务器正在获取发布请求,然后发回响应,但网页正在等待,好像它错过了响应。它似乎是随机发生的。如果我重新加载页面并重新发送,那么它的工作原理。 我已经尝试通过在发送响应之前暂停服务器进行复制,稍等一下然后继续。在这种情况下,它每次都有效,网页按预期继续。

我的帖子功能如下(略微编辑缩小以便于阅读)

 this.saving = true;
 // POST save to the database
 this.$http.post('/api/savebr',
          {
            tNumber: parseInt(this.tNumber),
            bNumber: parseInt(this.cNumber)
          }, 
          // I added the timeout for testing
           { timeout: 2000 }
      ).then((response) => {

        this.completed.push(parseInt(this.cNumber));
        this.saving = false;

      }, (response) =>
      {
        // error callback
        console.log(response);
        this.saving = false;
        alert('Could not save to server. Please try again.');
      })
    }

在上面,如果我暂停服务器,则超时有效。当服务器继续时,网页会忽略我认为正确的响应。 当网页随机错过响应时,错误回调永远不会完成。如果我将服务器的响应更改为预期的错误,它也可以工作。

我最近添加的超时选项,看看是否有任何赔率,并尝试零设置。

是否可以检测超时,取消当前帖子并发送新帖子?

如果我重复这个帖子,突然两个似乎都有效,所以成功代码会运行两次,即使最初的第一个请求似乎被卡住了。

很抱歉很长的帖子,感谢所有指针。

0 个答案:

没有答案