延迟(使用您选择的库):
const deferred = library.defer();
if (condition) deferred.resolve('success');
else deferred.reject('fail');
deferred.promise.then((result) => console.log(result));
只是封装一个 promise :
new Promise((resolve, reject) => {
if (condition) resolve('success');
else reject('fail');
}).then((result) => console.log(result));
这两种情况有什么区别?唯一真正的好处是您不必将所有代码包装在 promise 中吗?如果是这样的话,延期还有什么意义?
最佳答案
延迟是一个具有resolve
和reject
方法的对象,允许更改其状态。 promise 则不然。
至于以两种方式生成 Promise,通常应该没有任何区别。我更喜欢 Promises 的语法,因为它将您的逻辑包装在函数中,并避免变量污染外部范围,但仅此而已。
关于javascript - 将整个代码块包装在 Promise 中时 Promise 和 Deferred 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34386035/