小编vai*_*akh的帖子

如何立即启动setInterval循环?

简单来说 setInterval

setInterval(function() {
      // Do something every 9 seconds
}, 9000);
Run Code Online (Sandbox Code Playgroud)

第一个动作将在9秒后发生(t=9s).如何强制循环立即执行第一个动作(t=0)?

我认为这是由于setIntervalDelay - 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)

javascript jquery setinterval

49
推荐指数
4
解决办法
5万
查看次数

如何让 async/await 等待 Observable 返回

对 Angular 相当陌生,并且在 Promises、Observables 和 async/await 方面遇到困难。

  • 我有一个功能需要当前用户详细信息来执行某些任务。
  • 为此,我编写了一个获取用户详细信息方法,该方法返回一个承诺,并且任务在“then”部分内处理。
  • fetch 方法本身调用另一个方法,该方法调用 http.get 从数据库获取用户详细信息,并返回一个 Observable。
  • 我在这里使用 async/await 函数来等待 http.get 返回。

然而,这似乎不起作用。我感觉这与 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)

javascript asynchronous promise observable rxjs

3
推荐指数
1
解决办法
1万
查看次数