单线程异步如何知道异步操作完成情况
时间: 2024-03-22 10:41:31 浏览: 26
在单线程异步编程中,可以通过回调函数或者Promise对象来知道异步操作的完成情况。
在使用回调函数的情况下,一般会将异步操作的结果作为回调函数的参数传递给调用方。当异步操作完成时,回调函数会被调用并将结果传递给调用方。例如:
```
function doAsyncTask(callback) {
// 异步操作
setTimeout(() => {
const result = '异步操作完成';
callback(result);
}, 1000);
}
doAsyncTask((result) => {
console.log(result); // 打印 '异步操作完成'
});
```
在使用Promise对象的情况下,异步操作的结果可以通过resolve和reject方法传递给调用方。当异步操作完成时,调用resolve方法并传递结果,如果出现错误则调用reject方法并传递错误信息。例如:
```
function doAsyncTask() {
return new Promise((resolve, reject) => {
// 异步操作
setTimeout(() => {
const result = '异步操作完成';
resolve(result);
}, 1000);
});
}
doAsyncTask().then((result) => {
console.log(result); // 打印 '异步操作完成'
}).catch((err) => {
console.error(err); // 打印错误信息
});
```
无论是使用回调函数还是Promise对象,都可以在异步操作完成后通知调用方,并将结果传递给调用方。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)