我传递了以下对象:
var myVar = { typeA: { option1: "one", option2: "two" } }
Run Code Online (Sandbox Code Playgroud)
我希望能够typeA从上面的结构中取出密钥.
这个值每次都可以改变,以便下次可以typeB.
所以我想知道是否有办法让我做类似下面的伪代码:
var theTypeIs = myVar.key();
Run Code Online (Sandbox Code Playgroud)
这种方式,当我可以传递这个对象,我可以拉出对象的第一个值,在这种情况下它是typeA然后基于我可以用option1和做不同的事情option2.
我想为每个循环做一个但是让它同步运行.循环的每次迭代都将执行一次http.get调用,并返回json,以便将值插入数据库.问题是for循环以异步方式运行,导致所有http.gets都立即运行,我的数据库最终没有插入所有数据.我正在使用async-foreach尝试做我想做的事情它可以做,但如果我能以正确的方式做到这一点,我就不必使用它.
mCardImport = require('m_cardImport.js');
var http = require('http');
app.get('/path/hi', function(req, res) {
mCardImport.getList(function(sets) {
forEach(sets, function(item, index, arr) {
theUrl = 'http://' + sets.set_code + '.json';
http.get(theUrl, function(res) {
var jsonData = '';
res.on('data', function(chunk) {
jsonData += chunk;
});
res.on('end', function() {
var theResponse = JSON.parse(jsonData);
mCardImport.importResponse(theResponse.list, theResponse.code, function(theSet) {
console.log("SET: " + theSet);
});
});
});
});
});
});
Run Code Online (Sandbox Code Playgroud)
和我的模特
exports.importResponse = function(cardList, setCode, callback) {
mysqlLib.getConnection(function(err, connection) {
forEach(cardList, function(item, index, arr) {
var theSql = "INSERT …Run Code Online (Sandbox Code Playgroud)