最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Promise返回null

IT培训 admin 2浏览 0评论

Promise返回null

我正在创建一个名为kim-api的NPM包,但是,当我将图像路径传递给模块时,它返回null

这是.upload()方法的代码:

module.exports = (image) => {
    return new Promise((resolve, reject) => {

        if (!image) throw new TypeError('No image provided.');

        const request = require('request'),
            fs = require('fs'),
            options = {
                method: "POST",
                url: "",
                port: 443,
                headers: {
                    "Content-Type": "multipart/form-data"
                },
                formData : {
                    "image": fs.createReadStream(image)
                }
            };

        request(options, (err, res, body) => {
            if (err) throw (err);

            try {
                let parsed = JSON.parse(body);

                parsed.url = `/${parsed.info.image_id}/`

                resolve(parsed);
            } catch(error) {
                reject(err);
            }
        });

    })
}

这是我用来测试包的内容:

const kim = require('kim-api')
const path = require('path');

console.log(path.join(__dirnane, 'check.png')); // returns image path

kim.upload(path.join(__dirname, 'check.png')).then(img => {
    console.log('Image url: ' + img.url);
}).catch(err => console.error(err))

kim.uploads().then(data => {
    console.log('Total uploads: ' + JSON.stringify(data))
});

这是输出:

C:\Users\User\Desktop\Code Things\test-kim\check.png
null
Total uploads: {"status":200,"data":{"uploads":4622}}
  • 文件路径是正确的。
  • .upload()方法返回null
  • .uploads()方法返回预期输出。

有人会碰巧知道是什么让我的代码没有返回解析的输出,或是什么使它返回null

提前致谢!

回答如下:

那是愚蠢的。

} catch(error) {
    reject(err);
}

这部分代码显然没有正确编写。将err更改为error允许我实际查看并修复错误。抱歉!

Promise返回null

我正在创建一个名为kim-api的NPM包,但是,当我将图像路径传递给模块时,它返回null

这是.upload()方法的代码:

module.exports = (image) => {
    return new Promise((resolve, reject) => {

        if (!image) throw new TypeError('No image provided.');

        const request = require('request'),
            fs = require('fs'),
            options = {
                method: "POST",
                url: "",
                port: 443,
                headers: {
                    "Content-Type": "multipart/form-data"
                },
                formData : {
                    "image": fs.createReadStream(image)
                }
            };

        request(options, (err, res, body) => {
            if (err) throw (err);

            try {
                let parsed = JSON.parse(body);

                parsed.url = `/${parsed.info.image_id}/`

                resolve(parsed);
            } catch(error) {
                reject(err);
            }
        });

    })
}

这是我用来测试包的内容:

const kim = require('kim-api')
const path = require('path');

console.log(path.join(__dirnane, 'check.png')); // returns image path

kim.upload(path.join(__dirname, 'check.png')).then(img => {
    console.log('Image url: ' + img.url);
}).catch(err => console.error(err))

kim.uploads().then(data => {
    console.log('Total uploads: ' + JSON.stringify(data))
});

这是输出:

C:\Users\User\Desktop\Code Things\test-kim\check.png
null
Total uploads: {"status":200,"data":{"uploads":4622}}
  • 文件路径是正确的。
  • .upload()方法返回null
  • .uploads()方法返回预期输出。

有人会碰巧知道是什么让我的代码没有返回解析的输出,或是什么使它返回null

提前致谢!

回答如下:

那是愚蠢的。

} catch(error) {
    reject(err);
}

这部分代码显然没有正确编写。将err更改为error允许我实际查看并修复错误。抱歉!

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论