JS Client: Promise Polyfill
The Sanity JavaScript client uses Promises
to handle asyncronous requests. Some browsers (such as Internet Explorer) does not support this interface by default, and thus requires a so called polyfill for it to work.
There are many polyfills to choose from - we recommend something that comforms to the Promises/A+ specification, such as the es6-promise module. The readme for that module includes various ways to use it - the most important thing to note is that you should make sure the polyfill is applied before the Sanity client is instantiated.
Here's an example if you are using a bundler such as webpack, browserify or parcel:
require('es6-promise/auto')
const sanityClient = require('@sanity/client')
module.exports = sanityClient({
projectId: '...',
dataset: '...',
useCdn: true
})
(Make sure es6-promise is added as a dependency for your project.)