Reputation: 13
const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, 'foo');
});
Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values);
});
Promise(promise2).then((values) => {
console.log(values);
});
the Promise.all
shows the result "Array [3, 42, "foo"]" but the Promise
gave me an error "undefined is not a promise"
i tried to edit it as new Promise
but it gave me a new error "Promise resolver 42 is not a function"
Upvotes: 0
Views: 917
Reputation: 172
Promise constructor is used to wrap function and not integer which is why you are getting an error when trying to warp a integer inside a promise. Reference
You can do this in two ways:-
promise1
const promise1 = Promise.resolve(3);
const promise2 = Promise.resolve(42);
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, "foo");
});
Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values);
});
promise2.then((values) => {
console.log(values);
});
const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, "foo");
});
Promise.all([promise1, promise2, promise3]).then((values) => {
console.log(values);
});
new Promise((resolve, reject) => {
resolve(42);
}).then((values) => {
console.log(values);
});
Upvotes: 1
Reputation: 775
You need to use it like this:
Promise.resolve(promise2).then((values) => {
console.log(values);
});
Upvotes: 3