Use uma promessa no Angular HttpClient Interceptor

Posso usar a promessa dentroHttpInterceptor? Por exemplo:

export class AuthInterceptor implements HttpInterceptor{
this.someService.someFunction()
    .then((data)=>{
       //do something with data and then
       return next.handle(req);
    });
}

por que eu preciso disso? porque preciso obter um token para adicionar ao cabeçalho da solicitação antes de fazer a solicitação ao servidor.

Meu interceptador:

@Injectable()
export class AuthInterceptor implements HttpInterceptor{

    constructor(private authService: AuthService){}

    intercept(req: HttpRequest<any>, next: HttpHandler) : Observable<HttpEvent<any>>{
        console.log('Intercepted!');
        // return next.handle(req);
        this.authService.getToken()
            .then((token)=>{
                console.log(token);
                const reqClone = req.clone({
                    headers: req.headers
                            .set('Authorization', 'Bearer ' + token)
                            .append('Content-Type', application/json')
                });
                console.log(reqClone);
                return next.handle(reqClone);
            })
            .catch((err)=>{
                console.log('error in interceptor' + err);
                return null;
            });
    }
}

Solicitação:

this.http.post(this.baseURL + 'hero', data)
                    .subscribe(
                            (res: any) => {
                                console.log('Saved Successfully.');
                                console.log(res);
                            },
                            (err: any) => {
                                console.log('Save Error.' + err);
                            }
                        );

Problemas que estou enfrentando:

-> Eu recebo esse erro antes que a promessa seja resolvida.

You provided 'undefined' where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.

Promessa resloves e recebo meu token, mas após o erro.

questionAnswers(3)

yourAnswerToTheQuestion