我正在尝试返回在setTimout中计算的值。但好像我拿不出这个值。我读到要做到这一点,我必须用promise。我是否必须像下面这样使用它:https://italonascimento.github.io/application-a-timeout-to-your-promissions/?
renderTeaserBackground = () => {
return setTimeout(function() {
this.setState({ teaserAnimCount: this.state.teaserAnimCount + 1 });
let teaserBackground = teaserBgImg[this.state.teaserAnimCount];
console.log(teaserBackground);
}.bind(this), this.state.teaserAnimDuration * 1000);
return 'teaserBackground';
}
你可以用一个promise!
renderTeaserBackground = () => new Promise(res => {
setTimeout(_ => {
this.setState({teaserAnimCount: this.state.teaserAnimCount + 1});
let teaserBackground = teaserBgImg[this.state.teaserAnimCount]
res(teaserBackground) //Return it here!
}, this.state.teaserAnimDuration * 1000);
})
若要在外部使用此功能,您可以执行以下操作:
const mainLogic = _ => {
return renderTeaserBackground().then(teaserBackground => {
/* Use teaserBackground as you need! */
})
}
const mainLogic = async _ => {
const teaserBackground = await renderTeaserBackground()
/* Use teaserBackground as you need! */
}
我想这样做: js中是否有一种方法可以调用同步代码中的函数,并仅在我的controlVar变为1时返回值? 这不应该阻止,因为当我使用setTimeout时,主循环应该能够控制,但是如果阻止对我来说并不重要。 谢谢
我想在这里的蓝色阴影区找到31号。所以,我输入了代码。 (标记为31的框的xpath是) 但是我明白 我该怎么做才能得到31号?^^
我有一个函数,它调用一些服务并返回响应。如果响应为FALSE,它将等待1秒再次询问服务(然后可能返回TRUE)。 如何调用我的函数“checkService()”一次,并获得真正的值?(第一次或第二次尝试,由函数决定)我在函数内设置了RET值,但函数总是返回第一次RET,因为setTimeout是异步的。 换句话说,我需要一些“睡眠”技巧,或者任何解决方案(也可能是jQuery)。
这是我的问题 我有一个充满国家代码的JSON文件,以及一个获取随机国家代码的函数,如下所示: 在另一个函数中,我调用上面的函数,并尝试将变量存储到另一个变量中,以便在新函数中可用。 谢谢你的帮助。
考虑这个代码 我做了一个包装器来延迟的方法调用是否有办法从setTimeout内部的回调中检索值,即从?
我有下面的函数,它可以正确地从响应中提取图像的前缀和后缀,并生成一个可变的结果,其中包含场馆图像的url。然而,当我返回结果时,我一直没有定义。这里出了什么问题?