服务结束后,Angular运行一些代码来上传文件。

问题描述 投票:-2回答:1

我有一个服务功能,用来上传文件到Firebase存储,它接收一个文件数组,并上传其中的每个文件,同时更新每个文件的加载状态,并在上传时填写文件的'url'。

所以,我的 component.ts 看起来像


files: [{name: 'file1', uploaded: false, url:''}, {name: 'file2', uploaded: false, url:''} ];

...

constructor( private myService: FirebaseService) { }

...

this.myService.uploadImgToFirebase(this.files);


问题是,我需要在我的组件中运行一些代码(类似于 This.SOME_ITEM.files = this.files. )但就在 全部 的文件被上传。


this.myService.uploadImgToFirebase(this.files);

// THINGS I NEED TO DO WHEN ALL THE FILES WERE UPLOADED


我怎么才能实现呢?

angular firebase firebase-storage
1个回答
0
投票

Assuming 你正在做一个 http 调用,将返回一个 observable 你可以订阅。

this.myService.uploadImgToFirebase(this.files).subscribe(m => {
   //Do your operations here once its done.
});

您可以查看 async/await

async function turnYourFunctionAsync() {
  return 100;
}

turnYourFunctionAsync().then(alert); // 100

另一个简单的与asyncawait。

async function turnYourFunctionAsync() {
    let promise = new Promise((res, err) => {
        setTimeout(() => res("The file upload operation is complete"), 1000)
    });

    let response = await promise; 

    alert(response); 
    }
};

turnYourFunctionAsync();
© www.soinside.com 2019 - 2024. All rights reserved.