创建一个依赖于Promise

时间:2018-04-13 22:06:24

标签: typescript rxjs

我正在使用RxJS ajax为http请求创建一个observable,该请求依赖于来自异步源(如异步存储)的值。非异步版本如下:

export const search = term =>
  ajax(`/search?term=${term}`);

稍后我会将其用作以下内容:

fromEvent(element, 'keyup').pipe(
  switchMap(term => search(term))
);

这很好用,但是我需要更新ajax函数来设置身份验证令牌头。此令牌存储在异步存储中。我可以像这样更新函数:

export const search = async term => {
  const token = getFromStorage('token');
  return ajax(`/search?term=${term}`,
    { headers: { token } }).toPromise();
};

这确实有效,但现在我需要在需要呼叫搜索时使用fromPromise。这不是世界上最糟糕的事情,但我有点担心我会失去switchMap的好处(我还没有测试过)。似乎可以有一种更简洁的方法来生成可能具有异步源而不必创建Promise的Observable。

有没有办法生成依赖于另一个异步操作(Observable或Promise)的observable?

0 个答案:

没有答案