gpt4 book ai didi

javascript - 功能未按顺序运行

转载 作者:行者123 更新时间:2023-12-04 09:35:26 25 4
gpt4 key购买 nike

出于某种原因,在 node.js 中,代码没有按顺序运行。它甚至在从 function2 检索数据之前运行 console.log(data2)。
我假设这是因为 node.js 异步运行。但是,我不太确定如何修复它。
提前感谢所有帮助

function function1(app){
app.post('/test', (req, res, next) => {
const url = `url1`;
request(url, function(error, response, body) {
if(!error && response.statusCode == 200) {
var data = JSON.parse(body);
var data2 = function2(data.id);
console.log(data2); //undefined
res.send(profileData);
}
});
})
}

function function2(id){
const url = `url2/${id}`;
request(url, function(error, response, body) {
if(!error && response.statusCode == 200) {
var data = JSON.parse(body);
console.log(data); //output correct data
return data;
}
});
}

最佳答案

function function1(app){
app.post('/test', (req, res, next) => {
const url = `url1`;
request(url, async function(error, response, body) {
if(!error && response.statusCode == 200) {
var data = JSON.parse(body);
var data2 = await function2(data.id);
console.log(data2); //undefined
res.send(profileData);
}
});
})
}


function function2(id) {
const url = `url2/${id}`;
return new Promise(function (resolve, reject) {
request(url, function(error, response, body) {
if(!error && response.statusCode == 200) {
resolve(JSON.parse(body));
} else {
reject(error);
}
});
});
}

关于javascript - 功能未按顺序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62616190/

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