Web/06-JavaScript基础:异步编程/13-Promise的高级用法.md

1.3 KiB
Raw Blame History

Node.js 中的util.promisify()方法

Node.js 中有一个内置的方法 util.promisify(),它可以很方便地将 ES5回调函数写法的方法转成Promise写法的方法。就不需要我们手动封装Promise了。

代码举例:

// 引入 util 模块
const util = require('util');
// 引入 fs 模块
const fs = require('fs');

// 返回一个新的函数,这个函数是一个 Promise 对象
const readFilePromise = util.promisify(fs.readFile);
readFilePromise('readme.txt').then(res => {
  console.log('res:', res.toString());
});

使用 Promise 封装定时器,实现延迟函数

代码举例:

// 方法XX秒后执行指定的代码。这个方法就是在宏任务定时器的执行过程中创建了一个微任务resolve
function delaySeconds(delay = 1000) {
    return new Promise((resolve) => setTimeout(resolve, delay));
}

delaySeconds(2000)
    .then(() => {
        console.log('qiangu');
        return delaySeconds(3000);
    })
    .then(() => {
        console.log('yihao');
    });

打印结果:

// 2秒后打印
qiangu

// 再等3秒后打印
yihao

请求重试

参考链接: