Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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 为挂起的承诺添加超时_Javascript_Promise - Fatal编程技术网

Javascript 为挂起的承诺添加超时

Javascript 为挂起的承诺添加超时,javascript,promise,Javascript,Promise,我对一个没有自己超时的子进程使用承诺。我尝试过Promise Bluebird的race方法,它正在抛出但仍然挂起控制台 const done = () => Promise.delay(500).then(() => throw new Error('timeout') const fire = () => Promise.race([promiseHangs(url), done()]) fire().then(console.log) 如何解决PromiseHungs承

我对一个没有自己超时的子进程使用承诺。我尝试过Promise Bluebird的
race
方法,它正在抛出但仍然挂起控制台

const done = () => Promise.delay(500).then(() => throw new Error('timeout')
const fire = () => Promise.race([promiseHangs(url), done()])
fire().then(console.log)

如何解决PromiseHungs承诺并停止异步进程的运行?

const done=()=>promise.delay(500)的结果。然后(()=>throw new Error('timeout')是一个抛出的错误。最好使用
promise.reject('timeout')
根据文档,
承诺。任何
方法都将返回第一个结果,并且不允许您赢得被拒绝的值


因此,
const fire=()=>promisehungs()
任何([promisehungs(url),done()])
都应该起作用。

可能是相关的:。您发布的代码与如何使用从
promisehungs()
返回的承诺有关。解决该承诺与如何
promisehungs()有关
是书面的。这个问题无法回答。谢谢你的更正!我从来没有这样用过。