JavaScript如何在语句中包含的函数中设置返回值

图片说明

返回res[0],让findOneDefaultArticle()的返回值为res[0]

在db_one.all上面写
var res1 = [];
在return res[0]上面写
res1 = res[0];
在最后一个花括号上面
return res1;

函数是异步的,不可能做到返回res[0]的,推荐用Promise来做异步编程

//定义
findxxx(){
    return new Promise((resolve,reject)=>{
        db_one.all("***",function(err,res){
                if(err){

                }else{
                    resolve(res[0])
                }
        })
    })

}
//使用
findxxx().then(data=>{
    //data 就是res[0]
})

db_one.all是一个异步函数,即使在外部写return也不会返回预期的结果,可以使用如楼上所说的Promise来解决这个问题,也可以使用回调函数。

function findPneDefaultArticke(callback) {
    db_one.all('xxxxx', function(err, res){
        if (err) {
            callback({
                code: 0,
                err: err
            })
    } else {
        res[0]['folderId'] = '9272bff0c31d'
        callback({
                code: 200,
                res: res[0]
            })
        }
    })
}

// 在调用的时候
findPneDefaultArticke(function(data){
    if (data.code === 0) {
        // 失败
        console.log(data.err)
    } else {
    // 成功的结果
    console.log(data.res)
})