typescript - ¿Es posible crear un objeto de tipo Promise<Promise<T>> en JavaScript?
Todas estas 3 declaraciones devuelven un Promise<T> en lugar de un Promise<Promise<T>>
// first
const foo = Promise.resolve(Promise.resolve(42))
// second
function bar() {
return new Promise((resolve, reject) => {
resolve(new Promise((resolve, reject) => {
resolve(42)
}));
})
}
// third
function baz() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(new Promise((resolve, reject) => {
setTimeout(() => {
resolve(42)
}, 1000)
}))
}, 1000)
})
}
foo.then(console.log) // 42
bar().then(console.log) // 42
baz().then(console.log) // 42
¿Es posible crear un Promise que resuelva otro Promise en JavaScript?
Respuesta #1
No.
Si el valor resuelto de una Promesa es otra Promesa, entonces será adoptado.