当需要将两个异步请求接口返回的值拼接成一个数据时,如果将两个异步请求并列写,则会出现一个结果有值,一个结果没有值,究其原因,由于这两个请求是异步的,我们并不知道哪个请求会先得到结果,在我们去打印拼接的值时,就会出现undefined。所以,我们需要将一个异步请求放在另一个异步请求的回调当中,等一个请求结束就去调用另一个请求,这样我们才能拿到完整的拼接后的值。
例如:
dfsUpload(formDataLocal)
.then((response) => {
this.uploading = false
if (response.data && response.data.length > 0) {
file.url = response.data[0].bucketDomain + '/' + response.data[0].bucket + '/' + response.data[0].encodedFileName
this.imgUrlList.push(file.url)
this.$message.success('上传成功')
dfsUploadLx(formData)
.then((response) => {
this.uploading = false
if (response.data && response.data.length > 0) {
this.emitInput(this.imgUrlList, response.data[0].neid, response.data[0].nsid)
this.$message.success('上传到网盘成功')
}
}).catch((err) => {
console.log('uploading', err)
this.$message.error('上传失败')
})
}
}).catch((err) => {
console.log('uploading', err)
this.$message.error('上传失败')
})
我需要将this.imgUrlList, response.data[0].neid, response.data[0].nsid一次性作为参数传递给其他组件