JS-异步

雨燕双飞 提交于 2020-02-03 00:41:30
  1. 回调函数
  2. Promise
  3. RXJS

例子使用angular框架,创建了一个服务一个组件

服务

// promise 是 es6 新功能,不用导入第三方包
// rxjs是angular自带类,所以直接导入
import { Observable } from 'rxjs';

public getCallbackType(cb): void {
  setTimeout(() => {
    let type: string = "data by callback";
    cb(type);
  },1000)
}

public getPromiseType(): any {
  // resolve 成功,reject 异常
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      let type: string = "data by promise";
      resolve(type);
    },1000)
  })
}

public getRxjsType(): any {
  // observer.next 成功,observer.error 异常
  return new Observable((observer) => {
    setTimeout(() => {
      let type: string = "data by rxjs";
      observer.next(type);
    },1000)
  })
}

组件

this.typeService.getCallbackType((data) => {
  console.log(data);
});

this.typeService.getPromiseType().then((data) => {
  console.log(data);
})

this.typeService.getRxjsType().subscribe((value) => {
  console.log(value);
})
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!