JS deferred如何使函式延遲返回值?小熊社長2018-04-10 21:30:21

JS deferred如何使函式延遲返回值?

要使函式延遲返回值,拿到值的方式和傳統的=附值是不一樣的。

var q = require(‘q’);

function getSomeData (resolveOrNot) {

var def = q。defer(); // resolve value 123 after 1。5s

setTimeout(function() {

if (resolveOrNot) {

def。resolve(123);

} else {

def。reject(null);

}

}, 1500);

retur def。promise;

}

var resolveIt = true; // or false ——> will fall into 。catch

var theData;

getSomeData(resolveIt)

。then(function(data){

theData = data;

})

。catch(function(error)) {

theData = error;

});

希望上面的回答對你有所幫助,如果還是不懂或者有問題,可以關注今日頭條“小熊社長”頭條號,私信我。希望能夠對樓主有所幫助。