【发布时间】:2016-08-28 08:40:54
【问题描述】:
要测试一个对象是否是 Promise,只需检查该对象是否具有 then() 属性
但是如果函数没有执行,那么对象还没有产生怎么办。有没有办法测试?还是伪造执行?那么如何处理执行中可能出现的错误呢?
我正在尝试编写一个辅助函数来在 Redux 中创建操作。我想对同步和异步操作使用相同的界面。
function createAction('SOMEACTION', (arg) => dosth(arg);
function createAction('FETCHACTION', (arg) =>fetch(arg);
我将通过检查 fetch() 是否返回一个承诺来检测异步操作。
【问题讨论】:
-
不,一般来说没有办法做到这一点。不过,如果您只是想处理同步错误,则可以将所有内容包装在
try中。 -
你为什么要这样做?
-
为什么你对一个函数知之甚少?如果它来自 3rd 方库,请阅读文档,如果它是您编写的函数,请写得更好——这对我来说有点 XY 问题
-
function(){return [1, Promise.resolve()][Math.floor(Math.random()*2)];}的结果是什么?不运行它怎么知道? -
我尝试编写一个包装函数来在 redux 中创建动作。如果包装的函数返回一个承诺,它将被分派
标签: javascript promise