0

我有这个测试用例:

function setInitialValues (data) {
    window.localStorage.setItem ("name", "some name");
}

var data = '';
$.when (setInitialValues (data)).then (function (data) {
    window.localStorage.getItem ("name"); // this will be 'undefined' instead of 'some name'
});

发生的事情是在我打电话之前name没有得到setgetItem

任何想法我该如何解决这个问题?

4

1 回答 1

0

您需要从该方法返回一个承诺

function setInitialValues (data) {
    var deferred = jQuery.Deferred();
    //if some async operation is going on here then to simulate
    setTimeout(function(){
        window.localStorage.setItem ("name", "some name");
        deferred.resolve()
    }, 10)
    return deferred.promise();
}

演示:小提琴

于 2013-10-17T04:01:28.300 回答