问题:数据INFO_X有时随机成为空。NodeJS变量碰撞?与请求异步/同步
问题,
是否可变覆盖彼此INFO_1 INFO_2 INFO_3因为运行的NodeJS快速不像PHP它遵循一个序列/步步。
我在执行请求之前检查了NULLS,但在执行第二个请求之前调试显示它不是NULL,随机,随机变量在提交第二个请求时将变为空。
我也检查了我的源码绝对不是返回null。
在发送第二个请求之前变量被覆盖或者是什么?请指教。
var request = require('request');
var urls = [ 'URL',
'URL',
'URL'];
urls.forEach(processUrl);
function processUrl(url) {
request(url, function (error, response, body) {
if (!error) {
var obj = JSON.parse(body);
for (var i = 0, len = obj['products'].length; i < len; ++i) {
var data = obj['products'][i];
var INFO_1 = data.INFO_1
var INFO_2 = data.INFO_2
var INFO_3 = data.INFO_3
request("URL/POSTINFO?INFO_1="+INFO_1+"&INFO_2="+INFO_2+"&INFO_3="+INFO_3+"&seller_id=", function(error, response, body) {
console.log(body);
});
}
}
});
}
请求功能是异步,的NodeJS心不是异步,因此我需要使用承诺运行要求这是一个异步功能时,使我的NodeJS代码异步?我说得对吗? – CodeGuru
就是这样的。 '.forEach'基本上是调用异步函数,我会提供一个简单的例子,我会在几分钟内更新我的答案。 – uglycode
好的,我提供了一个基本的简单例子。请让我知道这对你有没有用。 – uglycode