js 阻塞封装
时间: 2023-07-12 09:04:27 浏览: 87
在 JavaScript 中,阻塞指的是代码执行时,当前的任务没有完成,导致后续的任务无法执行。为了解决这个问题,可以使用异步编程来避免阻塞。在封装时,可以使用 Promise 或者 async/await 等方式来实现异步编程。
下面是一个使用 Promise 封装的阻塞代码示例:
```javascript
function fetchData() {
return new Promise((resolve, reject) => {
// 模拟数据请求延迟
setTimeout(() => {
const data = { name: "John", age: 30 };
resolve(data);
}, 1000);
});
}
fetchData().then((data) => {
console.log(data);
});
```
在上述示例中,fetchData 函数返回一个 Promise 对象,其中包含了异步操作的结果。通过 then 方法,可以获取异步操作返回的数据,而不会阻塞后续代码的执行。
另外,也可以使用 async/await 封装异步代码。下面是一个使用 async/await 封装的示例:
```javascript
async function fetchData() {
return new Promise((resolve, reject) => {
// 模拟数据请求延迟
setTimeout(() => {
const data = { name: "John", age: 30 };
resolve(data);
}, 1000);
});
}
async function fetchAndLogData() {
const data = await fetchData();
console.log(data);
}
fetchAndLogData();
```
在上述示例中,fetchData 函数返回一个 Promise 对象,在 fetchAndLogData 函数中使用 await 关键字等待异步操作的结果。通过这种方式,可以实现非阻塞的异步编程。
阅读全文