Promise.resolve 的示例
服務/ my.service.ts
import { Injectable } from '@angular/core';
@Injectable()
export class MyService {
data: any = [1, 2, 3];
getData() {
return Promise.resolve(this.data);
}
}
getData()
現在表現得像一個建立 Promise 的 REST 呼叫,它會立即得到解決。結果可以在 .then()
內手持,也可以檢測到錯誤。這是非同步方法的良好實踐和約定。
元件/ my.component.ts
import { Component, OnInit } from '@angular/core';
import { MyService } from '../services/my.service';
@Component({...})
export class MyComponent implements OnInit {
data: any[];
// Creates private variable myService to use, of type MyService
constructor(private myService: MyService) { }
ngOnInit() {
// Uses an "arrow" function to set data
this.myService.getData().then(data => this.data = data);
}
}