调用内部函数,但在继续之前等待响应

时间:2020-10-15 22:04:11

标签: javascript function vue.js async-await

我有一个函数,并且在该函数内部,我正在运行一个内部函数。在继续使用main函数之前,我需要等待内部函数的结果。我仍在寻找异步并等待。

这是我的外部函数和内部函数。 ...代表其他代码:

async editSection () {
   ...
                
   if(this.file) {
       let uploadedFile = await this.uploadFile()
   }

    ....
}

这是辅助功能:

uploadFile() {  
            var splitfile = this.file.name.split('.')     
            var newname = splitfile[0] + '_' + Date.now() + '.' + splitfile[1]
            var storage = firebase.storage()
            storage.ref('xxxx/'+newname).put(this.file)
            .then(response => {
                return response.metadata.fullPath
            })
            .catch(err => {
                console.log(err)
                return err
            })
            
        },

1 个答案:

答案 0 :(得分:1)

只需从内部函数返回您的Promise,以便等待解决(等待)它。

uploadFile() {  
        var splitfile = this.file.name.split('.')     
        var newname = splitfile[0] + '_' + Date.now() + '.' + splitfile[1]
        var storage = firebase.storage()
        return storage.ref('xxxx/'+newname).put(this.file)
        .then(response => {
            return response.metadata.fullPath
        })
        .catch(err => {
            console.log(err)
            return err
        })
        
    },