Dennis Leung

前端小天才智多星班进修中

  • 主页
  • 干货储物柜
所有文章 关于我

Dennis Leung

前端小天才智多星班进修中

  • 主页
  • 干货储物柜

实现每隔i秒循环打印i

2020-06-14

面试时候的一道题,实现如下功能:

1
2
3
4
5
6
7
8
9
10
11
12
输出 1 
间隔 1s
输出 2
间隔 2s
输出 3
间隔 3s
输出 1
间隔 1s
输出 2
间隔 2s
输出 3
... 循环

方法一

思路:await + Promise

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const helper = function (i) {
console.log(i);
return new Promise(function (resolve) {
setTimeout(function () {
resolve();
}, i * 1000);
});
};

const fn = async function () {
const range = 4;
let cur = 0;
while (true) {
cur = ++cur % 4 || 1;
await helper(cur);
}
};
fn();

方法二

思路:for await…of + generator

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var iterable = {
[Symbol.asyncIterator]() {
const range = 4;
return {
i: 0,
next() {
this.i = ++this.i % range || 1;
console.log(this.i);
return new Promise((resolve) => {
setTimeout(() => {
resolve({ done: false });
}, this.i * 1000);
});
},
};
},
};

(async function () {
for await (let _ of iterable) {
}
})();
  • javascript
利用Apple Script脚本爬取微信公众号文章
多次调用bind时this的指向问题
© 2023 Dennis Leung
Hexo Theme Yilia by Litten

粤公网安备 44030502007083号

粤ICP备2021020087号

  • 所有文章
  • 关于我

tag:

  • leetcode
  • 算法
  • 并查集
  • JavaScript
  • 干货储物柜
  • Yii
  • php
  • Python
  • http
  • html
  • HTML
  • CSS
  • hexo
  • javascript
  • hybrid
  • 网络安全
  • Apple Script
  • 爬虫
  • 微信公众号
  • css
  • 数据结构
  • 编译原理
  • 位运算
  • 干活储物柜
  • 移动开发

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

不思进取的前端开发攻城狮。
梦想是躺着也能拯救世界。