当在对象内部调用函数时,JavaScript会监听

节省

我有一个函数,它返回一个可解析为对象的promise。

我希望此对象有一个事件,每次在内部调用此事件时,我都可以收听。

使用伪代码,它看起来像这样:

// function that returns the promise
function myFunction(){
    return new Promise(function(resolve, reject) {
        var obj = {};

        obj.running = event;        // this is a fake line of code
        setInterval(function(){ 
            obj.running             // this should trigger
        }, 3000);                   // something that can be listened to
        resolve(obj);                                    
    });
}

// function that can listen to the event
myFunction().then(function(obj){
    obj.event(){ // Fake event listener
        alert("the set interval function from the code above just ran")
    }
})

我可以想到的使用真实代码完成此操作的唯一方法是使用内部setInterval方法触发时调用的函数来原型化已解析的对象。

但是,我希望这样做而无需使用原型来简化功能API。现实生活中还有其他方法吗?

内森

问题是您要在广播员之后设置监听器理想情况下,应该在创建广播者之前创建侦听器,以便侦听器可以收听每个广播。

无论如何,一种方法可能是使用外部对象作为事件的持有者,以便首先创建侦听器。

var object = {
    running: function(){ } 
};
// function that returns the promise
function myFunction(object){
return new Promise(function(resolve, reject) {
    setInterval(function(){ 
        object.running();        // this should trigger
    }, 3000);                   // something that can be listened to

});
}

// function that can listen to the event
myFunction(object).then(function(response){
    object.running = function() {
      //do stuff here;
    };
});

这个想法是创建一个包含伪函数的对象,然后在promise解析后更改该函数。我了解这似乎不是最好的解决方案,但这是我在使用香草javascript时想到的唯一方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在对象数组内部调用的Javascript函数?

在对象内调用 JavaScript 函数

调用内部对象函数javascript

使用括号符号在对象内部调用函数

在对象内部和外部调用函数的不同行为

在javascript中的对象内部调用对象函数

将箭头放在对象内部时,箭头函数不起作用,调用后的结果为NaN

在对象上调用luabind函数时崩溃

调用存储在对象属性中的Javascript函数

Javascript:从内部对象调用顶级窗口函数

JavaScript:动态调用对象内部的函数

在对象内部使用对象的构造函数

当在内部调用readline on('close')事件(Typescript)时,如何使异步函数解决承诺?

在对象中调用方法时,Javascript中出现“未捕获的TypeError:未定义不是函数”的错误消息

Javascript在对象内部获取对象

PHP类:在对象内部编写函数?

当在函数内部调用函数时,事件侦听器处理程序上下文会发生什么?

在对象上调用匿名函数

在对象销毁期间调用的函数

Python,在对象上调用传递的函数

Javascript:在对对象的函数调用中从数组中删除对象

javascript调用内部函数

为什么需要在对象中的函数中的if语句中的“ this”内部而不是外部?的JavaScript

如何在对象内部调用对象的值?

如何在对象创建时就从QML调用任意C ++函数?

在对象文字中调用自执行函数时出现异常

如何访问从 JavaScript 中对象外部的函数内部调用的数组

使用构造函数在对象内部创建对象

如何从对象内部调用函数