我花了一整天的时间试图弄清楚我是否错误地使用了Promise。
这是反模式吗?
export const myExample = (payload) => {
return new Promise((resolve, reject) => {})
}
我可以用异步代码在 Promise 中使用吗?
export const myExample = (payload) => {
return new Promise(async (resolve, reject) => {})
}
那么这是错的吗?假设添加async默认会将其变成promise。
export const myExample = async (payload) => {
return new Promise((resolve, reject) => {})
}
如果是这种情况,那我是否应该从函数中返回,这样就相当于resolve;如果我抛出错误,那么就是reject。这样看起来是这样的吗?
export const myExample = async (payload) => {
if(payload) return true
else throw new Error('Promise rejection?')
}
那么“first”和“last”是一样的吗?
new Promise(async (resolve, reject)
总是被认为是一种“代码异味”... - Jaromanda Xawait fs.writeFile()
。所以您的意思是我不应该在Promise内部使用await
?所以只需使用fs.writeFile().then().catch()
? - uneasyasync (payload) => {}
,不确定在微任务世界中是否会有一些差异... async await 使用 try catch finally,还有 fs.promises ;) - Estradiazasync function
作为执行器传递给new Promise
(https://dev59.com/8lgQ5IYBdhLWcg3wRBzK),其他情况大多都没问题。(你可能并不是真的在构造一个永远不会解决的`new Promise`,而是在其中做了一些事情,对吧?) - Bergi