WordPress.org

Make WordPress Core

Changeset 39682


Ignore:
Timestamp:
01/05/17 03:05:57 (3 months ago)
Author:
dd32
Message:

REST API: Add error handling for fetch error in buildModelGetter of wp-api.js.

When a call to a model getter method fails, reject the returned deferred object. Enables better handling of fetch errors.

Props westonruter, adamsilverstein.
Merges [39680] to the 4.7 branch.
Fixes #39314.

Location:
branches/4.7
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/4.7

  • branches/4.7/src/wp-includes/js/wp-api.js

    r39604 r39682  
    322322                getModel = new wp.api.models[ modelName ]( attributes ); 
    323323 
    324                 // If we didn’t have an embedded getModel, fetch the getModel data. 
    325324                if ( ! getModel.get( embedCheckField ) ) { 
    326                     getModel.fetch( { success: function( getModel ) { 
    327                         deferred.resolve( getModel ); 
    328                     } } ); 
     325                    getModel.fetch( { 
     326                        success: function( getModel ) { 
     327                            deferred.resolve( getModel ); 
     328                        }, 
     329                        error: function( getModel, response ) { 
     330                            deferred.reject( response ); 
     331                        } 
     332                    } ); 
    329333                } else { 
     334                    // Resolve with the embedded model. 
    330335                    deferred.resolve( getModel ); 
    331336                } 
     
    393398                // If we didn’t have embedded getObjects, fetch the getObjects data. 
    394399                if ( _.isUndefined( getObjects.models[0] ) ) { 
    395                     getObjects.fetch( { success: function( getObjects ) { 
    396  
    397                         // Add a helper 'parent_post' attribute onto the model. 
    398                         setHelperParentPost( getObjects, postId ); 
    399                         deferred.resolve( getObjects ); 
    400                     } } ); 
     400                    getObjects.fetch( { 
     401                        success: function( getObjects ) { 
     402 
     403                            // Add a helper 'parent_post' attribute onto the model. 
     404                            setHelperParentPost( getObjects, postId ); 
     405                            deferred.resolve( getObjects ); 
     406                        }, 
     407                        error: function( getModel, response ) { 
     408                            deferred.reject( response ); 
     409                        } 
     410                    } ); 
    401411                } else { 
    402412 
Note: See TracChangeset for help on using the changeset viewer.