Articles of callback

NodeJS请求中的callback

it('should respond to a GET request at /api/keywords/', function (done) { request.get( { 'url': 'http://localhost:8080/api/keywords/', 'json': true }, function (err, res, body) { expect(res.statusCode).toBe(200); expect(body.foo).toEqual('bar'); done(); }); }); 我正在用Jasminetesting框架在NodeJS上做一个应用程序,同时我也了解callback如何在asynchronous编程中工作的基础知识。 然而,在这个特定的代码片段中,我似乎无法绕过这个想法,即在为url和json传递值之后,request.get()函数中已经传递了一个函数。 我的问题是,像request.get(),我没有定义的函数如何接受callback函数作为参数? 在这个方法中有规定接受这样的参数,因为我没有find一个定义,它声明接受一个callback函数作为参数来执行。 我知道它可以被传递,但是它是如何被执行的,因为我没有写出request.get()的定义,所以我不能定义如何执行一个传递的函数或者甚至执行它。

如何在每次迭代调用asynchronous选项时等待forEach完成?

好的,这是计划。 浏览每个文件,将文件添加到数组中。 一旦添加完所有文件,然后使用JSZipUtility和Docxtemplater进行合并: 'click .merge-icon': (e) => { var programId = Router.current().url.split('/').pop(); var programObj = Programs.findOne(programId); var insertedDocuments = []; var i = 0; var count = programObj.activityIds.count; var fileDownloadPromise = new Promise((resolve, reject) => { programObj.activityIds.forEach(function(activityId) { var activityObj = Activities.findOne(activityId); var documentObj = ActivityFiles.findOne(activityObj.documents.pop()._id); JSZipUtils.getBinaryContent(documentObj.url(), callback); function callback(error, content) { var zip = […]

我的回拨有什么问题?

这是具有2个函数的文件“path-info.js”:pathInfo&callback。 Pathinfo从对象“info”中收集有关文件的所有信息,callback获取该对象并将其返回。 码: "use strict"; const fs = require("fs"); let getInfo = function (err, someObject) { if (err) throw err; return someObject; }; function pathInfo(path, callback) { let info = {}; info.path = path; // write path info fs.stat(path, (err, type) => { // write type info if (type.isFile()) { info.type = "file"; } if […]

async调用基类的构造函数之后,无法在子类上设置属性。 NodeJS v8.2.1

你可以请帮忙了解什么可能是错误,而在父类的callback中使用承诺,然后尝试设置子类的属性? 我正在使用nodejs v8.2.1 这里是基类的例子: class CGLBase extends CAuthClient { constructor(req, res) { return new Promise(resolve => { super(req, res, (authClient) => { this.setAuthClient(authClient); resolve(this); }); }); } setAuthClient(authClient) { //setting authClient (this.auth will contain property) } } 这里的子类的例子: class СSheet extends CGLBase { constructor(document, urlRequest, urlResponse) { super(urlRequest, urlResponse); this.document = document; this.someAnotherProp = "some […]

Twilio不发送状态callback

我试图得到各种房间事件的状态callback,但Twilio没有发送任何事件到我的callbackURL,我用下面的代码来创build一个房间,使用我在这里find的文档 app.get('/createRoom', function (req, res) { var client = new Twilio(twilioApiKey, twilioApiSecret, { accountSid: twilioAccountSid }); client.video.rooms.create({ uniqueName: myRoomName, statusCallback: 'myCallbackURL' }).then((room) => { // }); });

困在节点js的回拨地狱

我试图修改这个节点库来添加一个额外的存在方法 这是链接到图书馆 – https://github.com/mikolalysenko/interval-tree-1d/blob/master/interval-tree.js 这是我创造的 proto.queryPointExists = function(x, cb) { if(x < this.mid) { if(this.left) { var r = this.left.queryPointExists(x, cb) if(r) { return r } } return reportLeftRangeExists(this.leftPoints, x, cb) } else if(x > this.mid) { if(this.right) { var r = this.right.queryPointExists(x, cb) if(r) { return r } } //console.log(reportRightRangeExists(this.rightPoints, x, cb)); return reportRightRangeExists(this.rightPoints, […]

NodeJS MongoDB游标toArraycallback函数不会对父范围variables进行更改

MongoClient.connect(dburl, function (err, db) { var collections = []; db.listCollections().toArray(function (err, collInfos) { for (var i = 0; i < collInfos.length; i++) { collections[i] = collInfos[i].name; } console.log(collections); }); console.log(collections); }); 所以我想把我所有的数据库集合放到一个string数组中,这是我的一部分代码。 问题是, toArraycallback之外的console.log首先被执行并输出[] ,而toArraycallback中的console.log正确地输出数组。 在我看来,有一些范围问题,但我不熟悉NodeJS和MongoDB究竟如何。

用promise生成数据集

我目前正在尝试生成一个javascript对asynchronous调用数组,但我似乎无法得到正确的顺序。 generateDataPoints: function (iterable, source, arg) { let pairs = [] let prevTime = 0 for (let index in iterable) { let event = iterable[index] getTime(event.valueOf()).then(function (time) { query(source[arg], event.valueOf()).then(function(val) { if (time !== prevTime) { prevTime = time pairs.push([time, val]) console.log(pairs) // This works as expected but only happens after the program returns } […]

如何在callback中访问正确的`this`?

我有一个构造函数注册一个事件处理程序: function MyConstructor(data, transport) { this.data = data; transport.on('data', function () { alert(this.data); }); } // Mock transport object var transport = { on: function(event, callback) { setTimeout(callback, 1000); } }; // called as var obj = new MyConstructor('foo', transport); 但是,我无法访问callback中创build的对象的data属性。 看起来this不是指创build的对象,而是指向另一个对象。 我也尝试使用对象方法而不是匿名函数: function MyConstructor(data, transport) { this.data = data; transport.on('data', this.alert); } MyConstructor.prototype.alert = […]

如何在for循环中运行一个项目的函数,然后再转到下一个项目?

for (var x = 0; x < emails.length; x++){ var email = emails[x]["email"]; client.single.check(email, true, true).then( result => { if (result.getNumericResult() == 0){ console.log("valid email: "+email); var verified = 1; admin.database().ref("/users/"+userID+"/emails/"+x+"/verified").set(verified, function(error){ if (error) { console.log("User ("+userID+") email state could not be saved" + error); } console.log("Saved"); }); } }, err => console.log('ERROR: ' + […]