从节点js函数返回值

时间:2017-07-16 07:05:27

标签: javascript node.js next

我在下一个js app中使用节点npm模块从api获取数据。

static async getInitialProps() {
    const zxapi = new Zxapi(connectId, secretKey);
    const res2 = await zxapi.programs({ region: "DE" }, function(err, result) {
        if (err != null) {
            return err
        }
        console.log(result, "before return");
        return result
        console.log(result, "after return");
    });
    return { res2 };
}

我需要返回res2的值。 "返回之前" console.log将数据记录到终端并在那里终止。我究竟做错了什么?感谢

1 个答案:

答案 0 :(得分:3)

您可以查看zxapi.programs是否返回Promise吗?如果没有,您可能必须创建一个函数,使其返回Promise

例如,您可以使用类似

的内容
function zxpromise() {
    return new Promise((resolve, reject) => zxapi.programs({ region: "DE" }, function(err, result) {
        if (err != null) {
            reject(err);
        }
        console.log(result, "before return");
        resolve(result);
        console.log(result, "after return");
    }));
}

然后,您可以将zxpromise称为

const res2 = await zxpromise()