首页 > 解决方案 > 如何在Nodejs回调函数之外提取变量的值

问题描述

我无法在回调代码之外获取响应的值。它在外部返回未定义,而在回调中它给出了正确的结果。

function doCall(urlString, callback) {
    request.get(
        urlString,
        null,
        null,
        (err, data, result) => {                              
            var statusCode = result.statusCode;
            return callback(data);
        }
    );
}

const apiResponse = doCall(urlString, function(response) {
    console.log('***************************' + response); //Prints correct result
    return JSON.parse(response);
});

console.log('+++++++++++++++++++++++++' + apiResponse); //Prints undefined

标签: node.jsvariablescallbackscoperequest

解决方案


function doCall(urlString) {
    return new Promise((resolve, reject) => {
        request.get(
            urlString,
            null,
            null,
            (err, data, result) => {
                if (error) reject(error);
                var statusCode = result.statusCode;
                resolve(data);
            });
    });
}

async function myBackEndLogic() {
    try {
        const result = await doCall(urlString);
        console.log(result);
       //return JSON.parse(result) if you want

    } catch (error) {
        console.error('ERROR:');
        console.error(error);
    }
}

myBackEndLogic();

阅读此内容以获得更多解释


推荐阅读