Javascript 轻松限制承诺返回方法

Javascript 轻松限制承诺返回方法,javascript,node.js,promise,Javascript,Node.js,Promise,我有一些返回SomeObject作为承诺的代码。这会导致内存不足,因为我会疯狂地触发它去做各种各样的工作,如果我不需要它的结果,这不会是一个问题,但我需要 我在这里真正得到的是——有没有一种方法可以将节流器注入到需要响应的现有代码中,从而根据机器内存降低响应速度 它将检查的条件是当前的机器内存级别,并且只有当内存下降到85%以下时才会返回true。有没有办法修复此功能,使其阻塞直到内存正常 public async throttleThis(config: string) : Promise&l

我有一些返回SomeObject作为承诺的代码。这会导致内存不足,因为我会疯狂地触发它去做各种各样的工作,如果我不需要它的结果,这不会是一个问题,但我需要

我在这里真正得到的是——有没有一种方法可以将节流器注入到需要响应的现有代码中,从而根据机器内存降低响应速度

它将检查的条件是当前的机器内存级别,并且只有当内存下降到85%以下时才会返回true。有没有办法修复此功能,使其阻塞直到内存正常

public async throttleThis(config: string) : Promise<ReturnThis> {

await waitUntil()
    .interval(500)
    .times(Number.POSITIVE_INFINITY)
    .condition(function() {
        return (true ? true : false);  // pretend memory is always ok for now
    })
    .done(async function(result: boolean) {
        if(result)
            return await this.doTheOldWork(config);
        else
            return Promise.reject("");    
    });

    // how can I avoid hitting this line and enforce the above chaining to occur
    // so that only SomeObject is returned when memory is ok?
    return Promise.reject("Unfortunately this code is reached right away");
}
公共异步throttleThis(配置:string):Promise{ 等待等待直到 .间隔(500) .次(正数_∞) .条件(函数(){ return(true?true:false);//假装现在记忆总是正常的 }) .done(异步函数(结果:布尔值){ 如果(结果) 返回等待此.doTheOldWork(配置); 其他的 退回承诺。拒绝(“”); }); //我如何避免撞到这条线并强制执行上述链接 //当内存正常时,只返回SomeObject? return Promise.reject(“不幸的是,此代码立即到达”); }
从回调函数返回的内容不会使其成为外部函数的返回值。在您的情况下,
throttle此
函数将始终返回
Promise.reject(…)
是的,这就是为什么我要问这个问题-是否有办法修复它,使它满足我的需要?您能向我们展示实际的问题代码,而不是您试图修复它的情况吗?对于如何解决最初的问题,我们可能会提出更好的建议。我有可以处理的变通方法,但我对此特别感兴趣。听起来我想要的似乎是不可能的——获取一段现有的代码并在其中插入一个楔子,这样会减慢它的速度,但仍然会返回一个响应。我现有系统的设计启动了工作流程——最好是避免自己被分块,让内存节流器为我做这件事。我想没有办法转换这样的方法?我想如果不可能的话,我不应该在重新设计时要求回复。