【发布时间】:2017-12-09 19:06:42
【问题描述】:
我需要将数据同步推送到数组。第一个 API 请求获取图像密钥库,需要在循环中获取图像数据。
var deasync = require('deasync');
router.get('/a', function(req, res) {
var username="user";
var passw ="pass";
var op = [];
var args = {
headers: {
'Authorization': 'Basic ' + new Buffer(username + ':' + passw).toString('base64')
}
};
//this is first api request
client.get(global.apiUrl+"V1/ProductItem", args,
function (data, response) {
//this is second api request
data.forEach(function(img) {client.get(global.apiUrl+"V1/ImagePreview/"+img.AvatarKey,args,
function (data2, response){
img['data']=data2.Image;
deasync(pushData(img));
});
});
});
function pushData(img){
op.push(img);//array push
}
res.render('test1', { "out":JSON.stringify(op) });
});
【问题讨论】:
-
“我需要同步推送数据到数组” 为什么?从技术上讲,添加到数组始终是同步的,但我猜你的意思是周围的一切都应该是同步的。
-
当您需要在 Node 中同步执行某些操作时,您就知道出了点问题;P
-
小语法修正。
标签: javascript node.js array-push node-deasync