通过功能结果设置对象键值

问题描述 投票:0回答:1

无法将探测功能结果分配给newItem对象中的w键。

有什么建议吗?

router.post('/', (req, res) => {
    const newItem = new Item({
        src: req.body.src,
        w: probe(req.body.src, function (err, result) {
            return result.width
            // console.log(result.width)
        })
    });
node.js function express object callback
1个回答
0
投票

probe似乎是异步的,因此该代码将无法工作。推荐的方法是使用Promiseasync/await。没有看到probe定义,我无法为您提供实现,但是如果您不知道如何将其转换为Promise,则只需使用util.promisify

const { promisify } = require('util')
const probe = promisify(require('./probe')) // or whatever module

router.post('/', async(req, res) => {

    try {
        const { witdth } = await probe(req.body.src);
        const newItem = new Item({
            src: req.body.src,
            w: witdth
        });
    } catch(e) {
        // Handle error
        res
            .status(500)
            .send('error')
    }
})
© www.soinside.com 2019 - 2024. All rights reserved.