Tag: 这个

如何解决像“asynchronous”和“请求”这样的节点库的“这个”问题

我写了一个节点脚本,通过请求REST API数据(使用库请求)来获取一些数据。 它由几个function组成,如下所示: var data = { /* object to store all data */ }, function getKloutData() { request(url, function() { /* store data */} } // and a function for twitter data 因为我想在获取所有使用库asynchronous之后执行一些操作来运行所有获取函数,如下所示: async.parallel([ getTwitterData, getKloutData ], function() { console.log('done'); }); 这一切工作正常,但是我想把所有东西都放在一个对象模式中,这样我就可以同时获取多个账户: function Fetcher(name) { this.userID = '' this.user = { /* data */ […]

JavaScript的事件循环问题

我不知道事件循环如何在JavaScript中工作,我正在使用node.js,但我想同样的问题适用于浏览器。 我有一些asynchronous调用(比方说setTimeout或$.ajax或fs.readFile ),一段时间后,事件循环执行callback 现在当callback执行时,幕后会发生什么? 当它调用asynchronous的东西时,它会复活它使用的堆栈吗? 在实践中callback所在的上下文是什么? 它是如何工作的? 编辑 :谢谢,我看..只是一个问题,事件循环如何“记住”callback的范围?

Nodejs,表示路由为es6类

我想清理我的项目,现在我尝试使用es6类为我的路线。 我的问题是这总是未定义的。 var express = require('express'); var app = express(); class Routes { constructor(){ this.foo = 10 } Root(req, res, next){ res.json({foo: this.foo}); // TypeError: Cannot read property 'foo' of undefined } } var routes = new Routes(); app.get('/', routes.Root); app.listen(8080);

将对象绑定到Promise.then()参数的正确方法

我发现了一个困难的方法,那就是不能简单地将对象的函数传递给蓝鸟。 我假设蓝鸟then正在做一些魔术,并在匿名函数中包装传递函数。 所以我附加了一个.bind的function,它的工作。 这是与蓝鸟做到这一点的正确方法? 还是有更好的办法? var Promise = require("bluebird") var Chair = function(){ this.color = "red" return this } Chair.prototype.build = function(wood){ return this.color + " " + wood } var chair = new Chair() //var x = chair.build("cherry") Promise.resolve("cherry") .then(chair.build.bind(chair)) // color is undefined without bind .then(console.log) 我知道这一切都不是asynchronous,所以请同步示例,我的用法是asynchronous。