因此,我试图将函数与异步计时器逻辑一起使用,在计时器停止后,我需要在其中执行computeResult
(例如,func)。为了控制setTimeout异步逻辑,我使用了基于Promise的asyncFunc
函数,但使用它时总是返回Promise {<pending>}
我。
在这种情况下我跌倒在哪里?谢谢。
P.S。 我还在SoF上看到了有关此主题的各种帖子,但对我没有帮助。不要只是为了增加您在SoF上的经验而阻塞我的问题
const computeResult = () => {
return 'sdas'
}
const asyncFunc = () => new Promise(
r => setTimeout(r, 1000))
.then(() => computeResult()
);
export default asyncFunc
答案 0 :(得分:1)
不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));
答案 1 :(得分:0)
在这种情况下,您可以写得很好,除了一点点思考。解决后,您忘记执行using System.Text.RegularExpressions;
var patternToMatch = "[0-9]{3}card\.json";
var regex = new Regex(patternToMatch, RegexOptions.IgnoreCase);
if (regex.IsMatch(qnaResult))
{
// Do something...
}
,这就是为什么它停留在Promise
状态的原因。
因此,换句话说,就像在另一种方式<pending>
调用asyncFunc
尾部之后.then
仅此而已。您将得到想要的东西:)
您可以在MDN网站上阅读有关此内容的更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise