- 回调函数
asyncFn(callback){ setTimeout(()=>{ const name='wq'; callback(name); }) } callback(result){ console.log(result) }
- Promise
asyncFn(){ new Promise((resolver)=>{ setTimeout(()=>{ const name='wq'; resolver(name); }) }).then((result)=>{ console.log(result); }) }
- async await
async asyncFn(){ let result=await ‘接口调用’; console.log(result); }
- generator(*) yield
function *asyncFn(){ let result = yield '接口调用'; }
- rxjs
- 异步编程
引入 Observable ,angular 内置 import { Observable } from 'rxjs'; asyncFn(){ let count=0; let observer = new Observable((observe)=>{ setTimeout(()=>{ count++; observe.next(count); }) }).subscribe((result)=>{}) }
-
可以取消订阅
observer.unsubscribe()
-
与 Promise 区别
当计时器为 setInterval 间隔触发时,Promise 只触发一次,Observable 触发多次。
-
运算符
引入运算符 import { first, map, filter } from 'rxjs/operators'; 使用 observe.pipe(filter(()=>{}),map(()={}))
- 异步编程
异步编程~
最新推荐文章于 2024-06-18 17:08:25 发布