添加超时以挂起承诺

时间:2018-02-16 03:53:52

标签: 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)

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

1 个答案:

答案 0 :(得分:1)

<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/bottompanel" android:orientation="vertical"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fragment_frame"/> </LinearLayout> 的结果是抛出的错误。你最好使用const done = () => Promise.delay(500).then(() => throw new Error('timeout')

返回实际的承诺

根据文档,Promise.reject('timeout')方法将返回第一个结果,并且不会允许您获胜的拒绝值。

所以Promise.any应该有用。