【发布时间】:2018-07-17 00:52:41
【问题描述】:
为什么在两次调用 promise 时 RSVP Deferred 会产生错误?
deferred.promise.then().finally() 和deferred.promise.then(); deferred.promise.finally() 似乎有区别。为什么?
RSVP.on('error', function(reason) {
console.log('Error: ' + reason);
});
var deferred = RSVP.defer();
var deferred2 = RSVP.defer();
var deferred3 = RSVP.defer();
var promise3 = deferred3.promise;
deferred.promise.then(function() {
console.log('Resolved');
}, function() {
console.log('Rejected');
}).finally(function() {
console.log('Finally');
});
deferred2.promise.then(function() {
console.log('Resolved2');
}, function() {
console.log('Rejected2');
});
deferred2.promise.finally(function() {
console.log('Finally2');
});
promise3 = promise3.then(function() {
console.log('Resolved3');
}, function() {
console.log('Rejected');
});
promise3.finally(function() {
console.log('Finally3');
});
deferred.reject('Reject!');
deferred2.reject('Reject2!');
deferred3.reject('Reject3!');
<script src="https://cdnjs.cloudflare.com/ajax/libs/rsvp/4.8.1/rsvp.js"></script>
编辑:我发现了如何解决这个问题。查看代码中的 Deferred3。
【问题讨论】:
-
我发现了问题,请参阅我的示例中的 deferred3!
-
如果您发现问题,请answer your own question 或直接删除。
标签: javascript asynchronous promise deferred rsvp.js