提取停止后更新并且Promise JS中没有解决Promise

时间:2018-07-15 09:05:24

标签: javascript reactjs promise fetch setstate

我正在尝试构建某种硬币收集器,并且单击按钮上的功能会向数据库触发获取请求,以将数字更新一个。现在,仅在刷新页面后才显示新编号。我打算在fetch函数放置新值后重新渲染组件。但是在我的代码中,从未达到fetch函数之后的承诺,因此总是在完成fetch之前触发更新。我还考虑过更新物品的状态,但是由于地图功能创建了多个卡,因此我无法更改单个卡的状态。

所以这是我渲染语义卡并调用updateNumber的函数。

IJavaScriptExecutor js = (IJavaScriptExecutor)_driver;
var element = js.ExecuteScript("return document.querySelector('selector_outside_shadow_root').shadowRoot.querySelector('selector_inside_shadow_root');");

这就是updateNumber函数

  renderCards = ({ idCollection, countryName, Year, SpecialCoins, name, existing, number, circulating, commemorative, edition, coinImage }) =>
<div className="card">
  <div className="image">
    <img alt={coinImage} src={"http://localhost:3000/images/" + coinImage + ".png"} />
  </div>
  <div className="content">
    <button onClick={(e) => this.updateNumber(e, idCollection, number)} className="circular ui icon button">{number}</button>
    <div className="ui sub header" key={Year} countryName={countryName} year={Year}>{Year + " " + name + " " + countryName}
    </div>
  </div>
  <div className="extra content">
    <span className="right floated">Auflage: {edition}</span>
  </div>
</div>

最后这是我从中获取数据的代码

    updateNumber(e,idCollection,number){

    var data={
    idCollection:idCollection,
    number:number + 1
      }
      update(data);
      function update(data) {

      fetch('http://localhost:3001/all/update', {
          method: 'put',
          body: JSON.stringify(data),
          headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
          }
        }) //From here on the promises are never reached
          .then(checkStatus)
          .then(()=>console.log('updated!!!'))

      }

      function checkStatus(response) {
        if (response.status >= 200 && response.status < 300) {

          return response
        } else {
          var error = new Error(response.statusText)
          error.response = response
          throw error
        }
      }
    }

我已经好几个小时没有为此提出解决方案了,我希望有人知道我的想法并可以提供帮助。谢谢!

0 个答案:

没有答案