Overview
Implement promiseResolve(value) that behaves like Promise.resolve(value).
Constraints
- If value is a Promise, return it as-is
- If value is a thenable (has
.then), wrap it - Otherwise, return a resolved promise
Examples
await promiseResolve(42); // 42
await promiseResolve(Promise.resolve('already')); // 'already'Solution
Reveal solution
function promiseResolve(value) {
if (value instanceof Promise) return value;
if (value && typeof value === 'object' && typeof value.then === 'function') {
return new Promise((resolve, reject) => value.then(resolve, reject));
}
return new Promise(resolve => resolve(value));
}promise-resolve.js
Promise.resolve
mediumcodingJavaScriptPromises
Overview
Implement promiseResolve(value) that behaves like Promise.resolve(value).
Constraints
- If value is a Promise, return it as-is
- If value is a thenable (has
.then), wrap it - Otherwise, return a resolved promise
Examples
await promiseResolve(42); // 42
await promiseResolve(Promise.resolve('already')); // 'already'Solution
Reveal solution
function promiseResolve(value) {
if (value instanceof Promise) return value;
if (value && typeof value === 'object' && typeof value.then === 'function') {
return new Promise((resolve, reject) => value.then(resolve, reject));
}
return new Promise(resolve => resolve(value));
}NameTopicDifficulty
103 of 103 problems