nodejs 回调地狱解决 promise async - 致敬科神 - 博客园
https://www.cnblogs.com/ytu2010dt/p/5486854.html
/** * @return boolean 是否成功 */ module.exports = async function (key, fileName) { let qiniu = require("qiniu"); let mac = new qiniu.auth.digest.Mac(global.config.qiniu.accessKey, global.config.qiniu.secretKey); let putPolicy = new qiniu.rs.PutPolicy({scope: global.config.qiniu.bucket}); let uploadToken = putPolicy.uploadToken(mac); let config = new qiniu.conf.Config(); config.zone = qiniu.zone.Zone_z0; let formUploader = new qiniu.form_up.FormUploader(config); let putExtra = new qiniu.form_up.PutExtra(); let Q = require('q'); let deferred = Q.defer(); formUploader.putFile(uploadToken, key, fileName, putExtra, function (respErr, respBody, respInfo) { if (respErr) { global.log4js.error(respErr); deferred.resolve(false); } else if (respInfo.statusCode==200) deferred.resolve(true); else { global.log4js.error(respBody); deferred.resolve(false); } }); return deferred.promise; }