面试题答案
一键面试const { promisify } = require('util');
const fs = require('fs');
const readFile = promisify(fs.readFile);
function timeoutPromise(promise, ms) {
return new Promise((resolve, reject) => {
const timeoutId = setTimeout(() => {
reject(new Error('任务超时'));
}, ms);
promise.then(resolve).catch(reject).finally(() => {
clearTimeout(timeoutId);
});
});
}
timeoutPromise(readFile('test.txt', 'utf8'), 500)
.then(data => {
console.log(data);
})
.catch(err => {
console.error(err.message);
});