ButterCMS / buttercms-js

Node/JS API client for ButterCMS (https://buttercms.com)
Other
162 stars 33 forks source link

No errors returned, when request failed by timeout #2

Closed vik-buchinski-azati closed 7 years ago

rogerjin12 commented 7 years ago

Per #1 , can you give that a try let me know if that resolves this issue?

vik-buchinski-azati commented 7 years ago

@rogerjin12 I tested, and I see, that this case still doesn't work. my code:

this.butter.post.list({ page: pageNumber, page_size: pageSize }).then(
      (response) => {
        clearTimeout(this.butterErrorTimeout); // timeout bugfix
        let newState = {};

        if (response.status === 200) {
          newState = {
            posts: response.data.data,
            pagination: response.data.meta,
            currentPage: pageNumber,
          };
        }

        newState = {
          ...newState,
          loading: false,
        };

        this.setState(newState);
      }
    );

So, how i see, that it should work:

  1. Fetch posts
  2. Request cancelled by timeout
  3. .then callback called with appropriate status and statusMessage (but on this step nothing called or returned)
rogerjin12 commented 7 years ago

@vik-buchinski-azati Hi Victor. I investigated this and an error is returned. You need to catch it as part of the promise callback chain. Try this:

var butter = require('buttercms')('your api token', true, 1);

butter.post.list({page: 1, page_size: 10})
  .then(function(response) {
    console.log(response.data)
  }).catch(function(response) {
    console.log('this is an error', response)
  });