Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在一段时间内为js函数添加计时器,然后显示消息_Javascript_Node.js_Timer - Fatal编程技术网

Javascript 如何在一段时间内为js函数添加计时器,然后显示消息

Javascript 如何在一段时间内为js函数添加计时器,然后显示消息,javascript,node.js,timer,Javascript,Node.js,Timer,我有一些js函数,我想在这些函数上应用一个计时器。因此,在一段时间内,函数应该执行,在达到设置的时间后,错误消息应该像“超时”一样打印出来 现在我想执行这个函数20秒,如果函数执行得很好并且得到了响应,那么它就可以了,但是如果超过20秒,那么它就会停止执行并显示消息说“请求超时”。在承诺开始时,使用let tid=setTimeout(…)调度调用拒绝({status:false,error:“timeout”})的函数。在请求的回调中,如果成功,只需调用clearTimeout(tid)可能重

我有一些js函数,我想在这些函数上应用一个计时器。因此,在一段时间内,函数应该执行,在达到设置的时间后,错误消息应该像“超时”一样打印出来


现在我想执行这个函数20秒,如果函数执行得很好并且得到了响应,那么它就可以了,但是如果超过20秒,那么它就会停止执行并显示消息说“请求超时”。

在承诺开始时,使用
let tid=setTimeout(…)
调度调用
拒绝({status:false,error:“timeout”})
的函数。在请求的回调中,如果成功,只需调用
clearTimeout(tid)可能重复:@ChrisG能否请您实施并发布最终解决方案。
module.exports.get = function (url) {
    return new Promise(function (resolve, reject) {
        request({
            url: url,
            headers: headers,
        }, function (err, res, body) {
            if (!err && res.statusCode == 200) {
                resolve({
                    status: true,
                    result: JSON.parse(body)
                });
            } else {
                resolve({
                    status: false,
                    result: body
                });
            }
        });
    })
}