function 方法异步调用
时间: 2024-09-20 20:13:45 浏览: 26
在JavaScript中,函数可以作为异步操作处理,通常通过返回Promise或者使用async/await语法来实现。当函数内部包含可能会耗时的操作,如网络请求、文件读取等,我们将其标记为异步,以便主线程不会阻塞,而是继续执行其他任务。
1. **返回Promise**: 如果函数内部有一个异步操作,可以在它完成后返回一个Promise,比如`new Promise((resolve, reject) => {...})`。一旦异步操作完成,调用`resolve()`或`reject()`来处理结果。
```javascript
function asyncFunction() {
return new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
resolve('Async result');
}, 1000);
});
}
// 调用并处理结果
asyncFunction().then(result => console.log(result)).catch(err => console.error(err));
```
2. **async/await**: 使用async关键字声明一个异步函数,然后在其中使用await关键字等待Promise解析或拒绝。await会暂停函数执行,直到Promise状态改变。
```javascript
async function asyncFunction() {
try {
const response = await fetch('https://api.example.com/data');
if (response.ok) {
const data = await response.json();
return data;
} else {
throw new Error('Failed to load data');
}
} catch (error) {
console.error(error);
}
}
// 调用并处理结果
(async () => {
const result = await asyncFunction();
console.log(result);
})();
```