Nodejs Promises

Promises

Promises是一种更高级的处理异步编程的方式,它可以更清晰地处理异步操作的结果和错误。一个Promise代表一个异步操作,可以是已经完成、正在进行中或尚未开始。

// 使用Promise读取文件示例
const fs = require('fs');

const readFilePromise = (filename) => {
    return new Promise((resolve, reject) => {
        fs.readFile(filename, 'utf8', (err, data) => {
            if (err) {
                reject(err);
                return;
            }
            resolve(data);
        });
    });
};

// 使用Promise
readFilePromise('/data/wwwroot/default/asset/test.html')
    .then(data => {
        console.log('File content:', data);
    })
    .catch(err => {
        console.error('Error:', err);
    });


在上面的例子中,我们使用readFilePromise函数返回一个Promise,然后可以使用.then()来处理异步操作成功的情况,使用.catch()来处理错误。

Async/Await

Async/Await是构建在Promise基础上的语法糖,它使得异步代码看起来更像是同步代码,更容易阅读和理解。

// 使用Async/Await读取文件示例
const fs = require('fs');

const readFileAsync = async (filename) => {
    try {
        const data = await fs.promises.readFile(filename, 'utf8');
        return data;
    } catch (err) {
        throw err;
    }
};

// 使用Async/Await
(async () => {
    try {
        const data = await readFileAsync('/data/wwwroot/default/asset/test.html');
        console.log('File content:', data);
    } catch (err) {
        console.error('Error:', err);
    }
})();


在上面的例子中,我们使用async关键字声明一个异步函数,然后可以在其中使用await关键字来等待一个Promise的解决。这使得异步代码的编写和阅读更加自然。

网友评论0