This question already has an answer here:
Difference between defer().promise and Promise
                            
                                (1个答案)
                            
                    
                4年前关闭。
        

    

与推迟(使用您选择的库):

const deferred = library.defer();
if (condition) deferred.resolve('success');
else deferred.reject('fail');
deferred.promise.then((result) => console.log(result));


只是包装在一个承诺:

new Promise((resolve, reject) => {
  if (condition) resolve('success');
  else reject('fail');
}).then((result) => console.log(result));


这两种情况之间有什么区别?您不必将所有代码都包装在promise中,这是唯一的真正好处吗?如果是这样的话,推迟的目的是什么?

最佳答案

延迟对象是具有resolvereject方法的对象,允许更改其状态。许诺没有。

至于以两种方式产生承诺,通常应该没有任何区别。我更喜欢Promises的语法,因为它将您的逻辑包装在一个函数中,并避免了用变量污染外部范围,但是仅此而已。

10-05 20:46