相关疑难解决方法(0)

循环内的JavaScript闭包 - 简单实用的例子

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)

javascript closures loops

2689
推荐指数
25
解决办法
34万
查看次数

在Node.js中完成for循环后如何运行函数?

假设我在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)

javascript node.js

5
推荐指数
3
解决办法
2万
查看次数

使用 readline 时 nodejs 暂停

我对 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)

loops readline node.js

1
推荐指数
1
解决办法
3389
查看次数

标签 统计

javascript ×2

loops ×2

node.js ×2

closures ×1

readline ×1