从promise中外部返回一个值

时间:2018-05-14 18:04:00

标签: javascript asynchronous

我编写了一个函数calc,它可以正常完成或根据用户输入永远运行,我无法控制它。我想编写一个包含它的函数limited_calc来提供时间限制,并在时间结束后停止运行该函数。我有时间限制使用这样的东西:

function limited_calc(max_time, input) {
    var timed = new Promise((resolve, reject) => {
        setTimeout(reject, max_time, "Time limit reached");
        resolve(calc(input));
    }
    return ???
}

function calc(input) {
    // (do the stuff)
}

.then()console.log()一起使用会显示正确的输出,但return中的.then()会给出应有的承诺,但不是价值本身。如何从return ???的行返回结果?我知道设置一个外部变量,然后另一个更长的超时工作,但似乎不安全。我该如何做到这一点?

我使用的资源:在接受的答案NodeJS Timeout a Promise if failed to complete in time中定义的类。

0 个答案:

没有答案