javascript – Promise.defer()浏览器支持

前端之家收集整理的这篇文章主要介绍了javascript – Promise.defer()浏览器支持前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一种创建延迟对象的方法,该对象将在当前范围之外解决.我喜欢延迟对象,正如我在Chrome 38中看到Promise.defer()返回延迟对象.

但在最新的Firefox 34中,Promise.defer在Safari 8.0中也是未定义的.

所以我现在无法使用Promise.defer.未来状况如何?它会在其他浏览器中实现还是会被淘汰?

解决方法

根据 the MDN article on Deferred,.defer方法已经过时了.如果你看看 this bug issue,它说Promise.defer是非标准的,所以它不可能返回.

Starting from Gecko 30,this object is obsolete and should not be used anymore. Use the new Promise() constructor instead.

他们提供了一个如何重写Promise.defer代码的例子,而不是使用新的Promise.

Promise.defer

var deferred = Promise.defer();
doSomething(function cb(good) {
    if (good)
        deferred.resolve();
    else
        deferred.reject();
});
return deferred.promise;

新的承诺

return new Promise(function(resolve,reject) {
    doSomething(function cb(good) {
        if (good)
            resolve();
        else
            reject();
    });
});

猜你在找的JavaScript相关文章