Angular2 тайм-аут в почтовом запросе
Возможно ли сделать тайм-аут 3 секунд в почтовом запросе? Как?
Мой код на данный момент
this.http.post('myUrl',
MyData, {headers: Myheaders})
.map(res => res.json())
.subscribe(
data => this.ret = data,
error => console.debug('ERROR', error),
() => console.log('END')
);
Ответы
Ответ 1
Вы можете использовать оператор timeout
следующим образом:
this.http.post('myUrl',
MyData, {headers: Myheaders})
.timeout(3000, new Error('timeout exceeded'))
.map(res => res.json())
.subscribe(
data => this.ret = data,
error => console.debug('ERROR', error),
() => console.log('END')
);
Ответ 2
Вам может потребоваться тайм-аут импорта таким образом
import 'rxjs/add/operator/timeout'
Я не мог заставить его работать без этого на rxjs 5.0.1
и angular 2.3.1
Ответ 3
Я изменил ответ Тьерри, чтобы он работал с последней версией. Необходимо удалить второй параметр функции таймаута. Согласно обсуждению проблемы angular -cli, функция тайм-аута всегда выдает TimeoutError.
this.http.post('myUrl',
MyData, {headers: Myheaders})
.timeout(3000)
.map(res => res.json())
.subscribe(
data => this.ret = data,
error => console.debug('ERROR', error),
() => console.log('END')
);