小程序屏蔽了阿里云的OSS
所以程序的上传先传到应用服务器,返回成功代码和临时地址给前台,然后应用服务器在后台上传到阿里云oss,再写数据库,返回前台。
try {
yield awaitWriteStream(stream.pipe(writeStream));
yield this.ctx.service.updatefile.updateToss(target, upFileName, uid);
return { code: 0, msg: '', data: tmpPath };
} catch (err) {
yield sendToWormhole(stream);
throw err;
}
这里是上传到应用服务器的
我的问题是,
yield this.ctx.service.updatefile.updateToss(target, upFileName, uid);
在updateToss这个function里,有一个update数据库动作,一个上传文件动作,都是yield。
这任务实际上是希望在后台执行的,所以那个return的问题应该如何处理,其实我是想把这句放到后台执行,不影响前台的。
尝试了on监视,但是不支持yield
相关分类