在Angular应用程序中,Promise应该优先于setTimeout用于执行异步操作。Promise可以更好地处理异步代码,并且在执行完成时返回值。下面是使用Promise的代码示例:
import { Injectable } from '@angular/core';
@Injectable()
export class MyService {
// Returns a Promise
getData(): Promise {
return new Promise((resolve) => {
// Make async API call with HTTP service
this.http.get('https://myapi.com/data').subscribe(response => {
// Resolve with API response
resolve(response);
});
});
}
}
在上面的代码示例中,我们创建了一个名为"getData"的方法,该方法返回一个Promise对象。在getData方法中,我们使用Angular中的HTTP服务中的get方法,从"myapi.com"异步获取数据。在HTTP服务的get方法返回响应后,我们将Promise对象标记为"resolved"并将响应作为返回值传递。
可以看到,使用Promise并不复杂,但它可以更好地处理异步代码和返回值。