MST

星途 面试题库

面试题:JavaScript中Promise链式调用的基础理解

请编写一段JavaScript代码,使用Promise链式调用实现以下功能:首先读取一个文件的内容,然后将内容解析为JSON格式,最后返回解析后JSON对象中的某个特定属性值。假设已有函数`readFile`返回一个Promise来读取文件,`parseJSON`返回一个Promise来解析JSON字符串。请处理可能出现的错误。
42.6万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试
function readFile(filePath) {
    // 模拟异步读取文件,返回Promise
    return new Promise((resolve, reject) => {
        // 实际实现中使用文件系统相关API读取文件
        setTimeout(() => {
            if (Math.random() > 0.5) {
                resolve('{"key": "value"}');
            } else {
                reject(new Error('读取文件失败'));
            }
        }, 1000);
    });
}

function parseJSON(jsonStr) {
    // 模拟异步解析JSON,返回Promise
    return new Promise((resolve, reject) => {
        setTimeout(() => {
            try {
                resolve(JSON.parse(jsonStr));
            } catch (error) {
                reject(new Error('解析JSON失败'));
            }
        }, 1000);
    });
}

function getSpecificProperty(filePath, property) {
    return readFile(filePath)
      .then(data => parseJSON(data))
      .then(jsonObj => jsonObj[property])
      .catch(error => {
            console.error('操作过程中出现错误:', error.message);
            return null;
        });
}

// 使用示例
getSpecificProperty('example.txt', 'key')
  .then(value => {
        if (value!== null) {
            console.log('特定属性值:', value);
        }
    });