var funcs = [];
// let's create 3 functions
for (var i = 0; i < 3; i++) {
// and store them in funcs
funcs[i] = function() {
// each should log its value.
console.log("My value: " + i);
};
}
for (var j = 0; j < 3; j++) {
// and now let's run each one to see
funcs[j]();
}Run Code Online (Sandbox Code Playgroud)
它输出这个:
我的价值:3
我的价值:3
我的价值:3
而我希望它输出:
我的价值:0
我的价值:1
我的价值:2
使用事件侦听器导致运行函数的延迟时,会出现同样的问题:
var buttons = document.getElementsByTagName("button");
// let's create 3 …Run Code Online (Sandbox Code Playgroud)假设我在Node.js中有一个结构,如下所示:
for (i = 0; i < 50; i++) {
//Doing a for loop.
}
function after_forloop() {
//Doing a function.
}
after_forloop();
Run Code Online (Sandbox Code Playgroud)
那么,如何确保在forloop完成之后会触发after_forloop()函数?
如果您想查看我实际上正在做什么:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
var proxyChecker = require('proxy-checker');
var fs = require('fs');
function get_line(filename, line_no, callback) {
fs.readFile(filename, function (err, data) {
if (err) throw err;
var lines = data.toString('utf-8').split("\n");
var firstLineBreak = data.toString('utf-8').indexOf("\n");
var originalText = data.toString('utf-8');
var newText …Run Code Online (Sandbox Code Playgroud) 我对 nodejs 很陌生,我正在尝试创建一个交互式 shell 脚本,该脚本将回复我的 facebook 墙上的帖子。问题是当我在循环中使用 Readline 模块时,它不会停止,而是继续循环。
这是我的全部代码
var access_token = 'XXX';
var myId = 'XXX';
var FB = require('fb');
var url = require('url');
var utf8 = require('utf8');
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
FB.setAccessToken(access_token);
function getWallFeeds(feedLink, args) {
FB.api(feedLink, 'get', args, function (res) {
if (!res || res.error) {
console.log(!res ? 'error occurred' : res.error);
return;
}
processMessage(res.data);
var nextLinkParts = url.parse(res.paging.next, true);
var args = {
limit: nextLinkParts.query.limit,
until: …Run Code Online (Sandbox Code Playgroud)