next
Version:
The React Framework
32 lines (31 loc) • 1.13 kB
JavaScript
/**
* Vary Params Decoding
*
* This module is shared between server and client.
*/ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "readVaryParams", {
enumerable: true,
get: function() {
return readVaryParams;
}
});
function readVaryParams(thenable) {
// Attach a no-op listener to force Flight to synchronously resolve the
// thenable. When a thenable arrives from the Flight stream, it may be in an
// intermediate 'resolved_model' state (data received but not unwrapped).
// Calling .then() triggers Flight to transition it to 'fulfilled', making
// the value available synchronously. React uses this same optimization
// internally to avoid unnecessary microtasks.
thenable.then(noop);
// If the thenable is still not 'fulfilled' after calling .then(), the server
// failed to resolve it before the stream ended. Treat as unknown.
if (thenable.status !== 'fulfilled') {
return null;
}
return thenable.value;
}
const noop = ()=>{};
//# sourceMappingURL=vary-params-decoding.js.map