gpt4 book ai didi

node.js - 在从第一个导致未定义的数据中获取数据之前,我的第二个 promise 被调用。不确定我在做什么

转载 作者:可可西里 更新时间:2023-11-01 11:15:52 25 4
gpt4 key购买 nike

underPrice函数调用后,直接进入下一个promise调用,返回undefined,然后进入under price。我不确定我做错了什么任何帮助将不胜感激。当 undrPrice 获取 key 时,数据就在那里,如果我放一个 console.log - 它会打印出来。问题是第二个 then 语句在第一个语句没有完成的情况下消失了

/// grab all online
var getActiveData = (payload) => {
pub.smembers('partner:services:' + payload.services)
.then((data) => {
Promise.all(data.map(underPrice.bind(this, payload)))
})
.then((data) => {
Promise.all(console.log(data));
});};

这是underPrice代码

var underPrice = (payload, key) => {
return new Promise((resolve, reject) => {
pub.hmget(key + ":services:" + payload.services, "amount", (err, data) => {
if (err) reject(err); //will display '1, 3, 5, 7'
else {
data <= payload.price ? resolve(key) : reject(key);
}
});
});
};

最佳答案

您忘记了从您的函数中返回 promise,尤其是从then 回调中,因此调用者将无需等待。

function getActiveData(payload) {
return pub.smembers('partner:services:' + payload.services)
// ^^^^^^
.then(data => {
return Promise.all(data.map(underPrice.bind(this, payload)))
// ^^^^^^
})
.then(data => {
console.log(data);
return data;
// ^^^^^^
});
}

关于node.js - 在从第一个导致未定义的数据中获取数据之前,我的第二个 promise 被调用。不确定我在做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48555273/

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