Use*_*842 5 promise typescript
我在目前正在使用的代码库中注意到以下内容,我不确定它的含义是什么:
public spinnerPromise: Promise<void> = new Promise<void>(() => { return; });
是否有理由拥有空洞的承诺?这让我想起了一个
setTimeOut(fn, 0)
,我想知道它是否有类似的效果.
谢谢
编辑
正如@Bergi指出的那样,给定的承诺永远不会实现,因为没人会解决。因此,所承诺的承诺永远不会召集任何等待结果的人。
相当于a的承诺setTimeOut(fn, 0)
为:
var spinnerPromise: Promise<void> = new Promise<void>(resolve => resolve());
Run Code Online (Sandbox Code Playgroud)
原版的
是的,效果是相似的。该Promise
规范要求即使Promise
处于已完成状态,注册处理程序时也不会正确调用任何处理程序。仅当当前调用完成执行时,它将被调用。
spinnerPromise.then (()=> { /* Code called later */ });
// Code called after call to then
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
442 次 |
最近记录: |