gpt4 book ai didi

javascript - 如何在 Promise 构造函数中正确解析 Promise

转载 作者:行者123 更新时间:2023-12-02 21:39:12 24 4
gpt4 key购买 nike

const setTimeoutProm = (delay) => new Promise(res => setTimeout(() => res(delay),delay))

我想做一些类似的事情,

const asyncOpr = (delay) => { 
return new Promise((resolve, reject) => {
//update delay for some reason.
const updatedDelay = delay * 2;
setTimeoutProm(updatedDelay).then(res => {
resolve(res);
}).catch(err => {})
})
}
asyncOpr(2000).then(() => alert("resolved")) //this works

这按预期工作,但我不确定这是否是正确的方法,或者是否有更好的方法?

最佳答案

不,实际上你这样做的方式是 antipattern .

您可以只从函数返回一个 promise :

 const asyncOpr = (delay) => { 
return setTimeoutProm(delay);
};

如果需要,也可以从.then内部返回Promise。 :

 doA()
.then(() => setTineoutProm(1000))
.then(() => doB());

或者也可以在异步函数中等待:

  async function asyncOpr(delay) {
//...
await setTimeoutProm(delay);
//...
}

关于javascript - 如何在 Promise 构造函数中正确解析 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60408453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com