Tag: callback

将一个额外的parameter passing给一个callback函数

我有一个函数callWithMagic ,它将一个callback函数作为参数,并用一个参数来调用它。 const callWithMagic = callback => { const magic = getMagic(); callback(magic); }; 我也有一个函数processMagic ,它有两个参数: magic和theAnswer 。 const processMagic = (magic, theAnswer) => { someOtherMagic(); }; 我想将processMagic作为parameter passing给callWithMagic ,但是我也想把42作为第二个参数( theAnswer )传给processMagic 。 我怎样才能做到这一点? callWithMagic(<what should I put here?>);

什么是callback函数?

什么是callback函数?

我怎样才能将一个parameter passing给setTimeout()callback?

我有一些JavaScript代码,如下所示: function statechangedPostQuestion() { //alert("statechangedPostQuestion"); if (xmlhttp.readyState==4) { var topicId = xmlhttp.responseText; setTimeout("postinsql(topicId)",4000); } } function postinsql(topicId) { //alert(topicId); } 我得到一个错误, topicId没有被定义一切工作之前,我使用setTimeout()函数。 我想要一段时间后调用postinsql(topicId)函数。 我该怎么办?

将正确的“this”上下文传递给setTimeoutcallback函数?

如何将上下文传递给setTimeout ? 我想调用this.tip.destroy()如果this.options.destroyOnHide 1000毫秒后。 我怎样才能做到这一点? if (this.options.destroyOnHide) { setTimeout(function() { this.tip.destroy() }, 1000); } 当我尝试以上时, this是指窗口。

不是承诺只是callback?

我一直在开发JavaScript几年,我根本不明白承诺的大惊小怪。 看来我所做的只是改变: api(function(result){ api2(function(result2){ api3(function(result3){ // do work }); }); }); 我可以使用类似asynchronous的库,像这样: api().then(function(result){ api2().then(function(result2){ api3().then(function(result3){ // do work }); }); }); 哪些是更多的代码和更less的可读性。 我在这里没有获得任何东西,也不是突然神奇的“平坦”。 更不用说把事情转化为承诺。 那么,在这里承诺有什么大惊小怪呢?

如何在Objective-C中创build委托?

我知道代表是如何工作的,而且我知道如何使用它们。 但是,我如何创build它们?

如何从asynchronouscallback函数返回值?

这个问题在SO中被多次提出。 但是我仍然无法得到东西。 我想从callback中获得一些价值。 看看下面的脚本澄清。 function foo(address){ // google map stuff geocoder.geocode( { 'address': address}, function(results, status) { results[0].geometry.location; // I want to return this value }) } foo(); //result should be results[0].geometry.location; value 如果我尝试返回该值只是“未定义”。 我跟从了一些想法,但仍然失败。 那些是: function foo(address){ var returnvalue; geocoder.geocode( { 'address': address}, function(results, status) { returnvalue = results[0].geometry.location; }) return returnvalue; } foo(); […]

如何将现有的callbackAPI转换为承诺?

我想使用承诺,但我有一个格式的callbackAPI: 1. DOM负载或其他一次性事件: window.onload; // set to callback … window.onload = function(){ }; 2.普通callback: function request(onChangeHandler){ … request(function(){ // change happened }); 3.节点样式callback(“nodeback”): function getStuff(dat,callback){ … getStuff("dataParam",function(err,data){ } 4.具有节点样式callback的整个库: API; API.one(function(err,data){ API.two(function(err,data2){ API.three(function(err,data3){ }) }); }); 我如何在承诺中使用API​​,如何“promisify”呢?

如何在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 = […]