Alertify.confirm在promise中出现未被捕获的错误?

时间:2016-11-12 20:21:13

标签: javascript promise angular-promise es6-promise

我使用JS承诺转换alerify的确认方法以返回promise

没有详细说明,确认功能是这样的:

alertify.confirm = function(message onOk, onCancel) ...

这基本上会显示确认提醒,并根据用户是否点击okcancel按钮调用相应的onOkonCancel功能。

所以无论如何,我已经在我的主应用程序中将此功能包装在这样的Promise中:

function confirm(text) {
   return new Promise(resolve, reject) {
     alertify.confirm(text, resolve, reject);
   }
}

var promise = confirm('Are you sure?');
promise.then(function() { alert('you clicked ok'); });

这可以按预期工作,但如果我点击Cancel,那么我在控制台中收到此错误:

Uncaught (in promise)

我认为这是因为我没有在我的承诺中添加.catch,然后警告调用reject函数。如何检查拒绝功能是否已分配?

这样做的正确方法是什么?



function submit() {
  return new Promise((resolve, reject) => {
    //how to check if reject is assigned or not?
    confirm('Are you sure') ? resolve() : reject();
  });
}

function test() {
  var promise = submit();
  promise.then(() => alert('you clicked ok'));  
  promise.catch(() => alert('you clicked cancel'));
}

<input type="button" onclick="test()" value="test">
&#13;
&#13;
&#13;

0 个答案:

没有答案