以异步方式返回对象并在Node.js中等待

塞雷斯·卡比尔

我是Node.js的新手,我有async一种称为

async function makeLineStringFromPoints(user) {
    ...

    for (let item of linesGeoJson) {
        saveLineIntoDb({
            'line': item,
            'date': user.date_created,
            'user_id': user.uid,
            'device_id': user.devid,
        }).then((userStored) => {
            console.log(userStored); // i received undefined  
        }).catch((err) => {
            console.log(err);
        });
    }
    ...
}

在此方法中,我调用了此方法中的其他异步方法saveLineIntoDb,即在数据库中存储用户信息:

async function saveLineIntoDb(user) {
    let userStored = user;
    try {
        await db.result(pgp.helpers.insert(user, cs))
            .then(data => {
                return await (user); // return user
            });
    } catch (error) {
        logger.error('saveIntoDatabase Error:', error);
    }
}

现在,存储后我要回usersaveLineIntoDb(user)}).then((userStored),但总是我undefined

我怎样才能做到这一点 ?

米拉德·阿格哈莫哈玛迪(Milad Aghamohammadi)

为什么要在那时回用户?可能可以这样

async function saveLineIntoDb(user) {
    let userStored = user;
    try {
        await db.result(pgp.helpers.insert(user, cs));

        return user; // return user

    } catch (error) {
        logger.error('saveIntoDatabase Error:', error);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章