简单来说 setInterval
setInterval(function() {
// Do something every 9 seconds
}, 9000);
Run Code Online (Sandbox Code Playgroud)
第一个动作将在9秒后发生(t=9s).如何强制循环立即执行第一个动作(t=0)?
我认为这是由于setInterval有Delay - Action - Delay - Action ...循环的机制; 而不是Action - Delay - Action - Delay ...循环.
编辑:我的功能确实是一个循环
setInterval(function(){
$('.test').each(function(idx){
var duration = 1000;
$(this).delay(duration*idx);
Some stuff here
});
}, 4000);
Run Code Online (Sandbox Code Playgroud) 对 Angular 相当陌生,并且在 Promises、Observables 和 async/await 方面遇到困难。
然而,这似乎不起作用。我感觉这与 Observables/subscribe 的工作方式有关,但我无法解决它。
代码片段:
initPage() {
fetchCurrentUserDetails().then((user) => { //tasks dependent on current user
//task 1
//task 2
});
}
fetchCurrentUserDetails(): Promise<any> {
return Promise.resolve((async () => {
let currentUser = this.global.getUser();// check if user is defined already
let userId: string = sessionStorage.getItem('userid');
if (currentUser == undefined) {
let initProfile = new Promise(resolve => resolve(this.fetchDetailsFromDB(userId)));
const profile: any = await initProfile; …Run Code Online (Sandbox Code Playgroud)