gpt4 book ai didi

javascript - knex选择结果返回到变量

转载 作者:太空宇宙 更新时间:2023-11-04 03:22:35 25 4
gpt4 key购买 nike

我需要将 knex select 查询结果获取到变量。

function getUserPlanDetailsWithOutCb(user_id) {
var dataArr =[];
knex('user_plans').select('*').where({ 'user_id': user_id }).then(function(result) {
result.forEach(function(value) {
dataArr.push(value)
});
//return dataArr;
});
return dataArr;
}

var result = getUserPlanDetailsWithOutCb(12);

我已尝试在 knex 中的回调外部和内部返回值。对于上面的代码,我得到的结果为 [ ]对于第二个(在回调中返回)我得到的结果为

{
"isFulfilled": false,
"isRejected": false
}

最佳答案

要使用 Promises 返回变量,请对数据检索函数执行以下操作:

注意:return knex( 将 Promise 对象返回给调用者,return dataArr 将值返回给调用者的 .then() Promise 子句。

function getUserPlanDetailsWithOutCb(user_id) {
var dataArr =[];
return knex('user_plans').select('*')
.where({ 'user_id': user_id })
.then(function(result) {
result.forEach(function(value) {
dataArr.push(value)
});
return dataArr;
});
}

通过以下方式调用该函数:

var result;
var aPromise = getUserPlanDetailsWithOutCb(12)
.then(function(result) {
result = value;
});

result 变量将在 aPromise 解析时设置。

使用var aPromise调用函数将导致程序在履行Promise并设置结果之前继续执行,这可能不是您想要的。所以你可以使用 await 来代替(如 @Abhyudit Jain 所说),但我还没有这样做,所以如果我尝试的话,我会弄乱你的语法。

干杯!加里。

关于javascript - knex选择结果返回到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48558183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com