如何将promise.all转换为可观察值

时间:2019-02-11 06:49:27

标签: angular

我有这个特殊的代码,它使用promises将文件发送到api。api一次只能接受一个文件,并且我有多个文件。所以我使用了promise数组和promise.all 示例代码如下

            const docPromises = new Array<Promise<ResponseType>>();
            for (const doc of docs) {
                docPromises.push(this.sendDoc(doc));            
            return Promise.all(docPromises).then(
                (responses: ResponseType[]) => {                  
                    return resolve();
                },
                (error: Response | any) => {                  
                    return reject(error);
                }
            )
                .catch((error: Response | any) => {                
                    return reject(error);
                });

在this.sendDoc中,我正在执行this.http.post

如何将其更改为rxjs?我抬起头来..但是没有什么可以保证的。all

1 个答案:

答案 0 :(得分:1)

在rxjs中,forkJoin是Promise.all的替代方案。

import pywikibot as pw

site = pw.Site('en', 'wikipedia')

print([
    cat.title()
    for cat in pw.Page(site, 'support-vector machine').categories()
    if 'hidden' not in cat.categoryinfo
])