我过去使用以下函数来使用NSDateComponents现有日期添加特定时间间隔.
(NSDate *)dateByAddingComponents:(NSDateComponents *)comps
toDate:(NSDate *)date
options:(NSCalendarOptions)opts
Run Code Online (Sandbox Code Playgroud)
从iOS8开始,不推荐使用周值NSDateComponents,这意味着我无法实现我想要做的事情:NSDate通过向给定数量添加特定周数来生成新值NSDate.
任何帮助将不胜感激.
我一直在使用 Typescript 开发 Angular 应用程序,并且我开始意识到我需要在编译(转译)方面更加关注 tsconfig。
目前,在源代码中,我正在使用一些 es6 功能(例如 Array.prototype.find),并且 TSLint-er 将这些功能视为错误。
我正在尝试重新配置我的 tsconfig,以便它允许我使用 es6 功能但转换为 es5。在这样做时,我无法理解“目标”属性实际上是什么。“目标”属性是什么意思?
“目标”是否代表所需的转译输出?或者它是否声明了 Typescript 语法应符合什么才能进行转译?
最近,在我的Angular应用程序中,我开始在几种不同的情况下使用rxjs switchMap运算符。我很快意识到,当使用switchMap时,当您订阅此流时,完成块不会触发(我也不认为错误块也会触发)。我在网上看到的所有示例似乎也都无法处理补全问题,我对此感到困惑,原因是什么?
我显然缺少关于switchMap或如何使用它的东西,但是我不知道是什么。
理想情况下,我希望使用触发Http请求的函数来调用函数,然后在错误块中处理错误,然后在完成块中处理请求后的内容。
这是我正在做的事的例子:
export class ResultsComponent {
ngAfterViewInit() {
Observable.combineLatest(...filters)
.debounceTime(500)
.distinctUntilChanged()
.switchMap((activeFilters: Array<ActiveFilter>) => {
const filters = this.mapFilters(activeFilters);
return this.doSearch(this.term$.getValue(), filters);
})
.subscribe((res) => {
this.onSearchSuccess(res);
},
(err) => {
// THIS NEVER FIRES
console.error(err);
this.loading$.next(false);
,() => {
// THIS NEVER FIRES
this.loading$.next(false);
});
}
private doSearch(input: string, filters: object): Observable<object> {
return this.searchService.search(input, filters);
}
}
Run Code Online (Sandbox Code Playgroud)
服务
export class SearchService {
private baseUrl: string = 'http://mydomainhere.com/api';
constructor(private http: Http) {}
public search(input: string, filters: …Run Code Online (Sandbox Code Playgroud)