根据Promise - Javascript | MDN ,
The constructor is primarily used to wrap functions that do not already support promises.
- 在较低级别,已经支持
promises
的函数将 这样做是否正确,即使用Promise
构造一个promise
并将其返回? - 除了使用
Promise
构造函数之外,还有更好的方法来创建promise
吗? - 最终,您必须在某处注册
回调
,对吧?我的意思是你无法避免至少解析
的回调
?换句话说,我们必须像这样将它包装在库中的某个位置,对吗?
最佳答案
- 处于最低级别?是的,可能是。
- 取决于上下文。如果您想要解析的值已经可用,那么您可以使用
Promise.resolve(theValue)
。如果您想等待多个 Promise,您可以使用 Promise.all(allThePromises)。当然,每次调用.then
都会返回一个新的 Promise。 - 如果您想对 Promise 的值执行任何操作,那么您必须将回调传递给
.then
。没有其他方法可以获取该值。
话虽如此,ES2017 introduced async functions它们基本上是 promise 的语法糖。 async
函数始终返回一个 Promise,您可以使用 await
来解开 Promise。示例:
async function get() {
return await Promise.resolve(42);
}
get().then(console.log);
关于javascript - Promise 构造函数是必要的还是可以避免?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46716161/