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;
}
posted @ 2020-09-02 16:19  荣神益人  阅读(164)  评论(0编辑  收藏  举报