[英]Async setTimeout on Promise based? Promise {<pending>} Error
因此,我试图使函数与异步计时器逻辑一起工作,在计时器停止后,我需要在该逻辑上执行computeResult
(例如,func)。 为了控制setTimeout异步逻辑,我使用了基于Promise的asyncFunc
函数,但是使用它时,它总是返回Promise {<pending>}
。
在这种情况下我跌倒在哪里? 谢谢。
附言:我还在SoF上看到了有关此主题的各种帖子,但这对我没有帮助。 不要只是为了增加您在SoF上的经验而阻止我的问题
const computeResult = () => {
return 'sdas'
}
const asyncFunc = () => new Promise(
r => setTimeout(r, 1000))
.then(() => computeResult()
);
export default asyncFunc
不100%不确定您要做什么。
但是以下可能是您的追求。
const computeResult = () => { return 'sdas' } const asyncFunc = () => new Promise(resolve => setTimeout(() => resolve(computeResult()), 1000) ); console.log("Wait for computeResult"); asyncFunc().then(r => console.log(r));
在这种情况下,您会写得很好,但请三思而后行。 您在解决Promise
后忘记执行该Promise
,这就是为什么它停留在<pending>
状态。
因此,在另一个词语只写后asyncFunc
调用.then
尾巴在像下方式asyncFunc().then(your_sersult => ddoSomething(your_sersult))
就这样。 你会得到你想要的:)
您可以在MDN网站上阅读有关它的更多信息: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.