ajax 保存变量值,Javascript:将AJAX结果保存为Class变量

最重要的部分是如何使用JavaScript处理异步数据.有一些经过很好测试的解决方案:功能和承诺.

在两个cass中,Reader应该有一个构造函数来分配这样的数据:

function Reader(data) {

this.data = data;

}

回调方法需要一个具有回调函数的工厂函数.

function getReader(url,callBack) {

Ajax.success(function(data){

callBack( new Reader(data) );

});

}

并使用它

getReader(url,function(reader) {

reader.searchData();

});

Promise -approach不需要立即回调,所以结果可以存储在一个变量中,并作为一个变量传递,这个变量有一些优点:

function getReaderPromise(url) {

return new Promise( function( resolve,reject ) {

Ajax.success(function(data){

resolve( new Reader(data) );

});

});

}

然而,使用承诺通常需要调用那个承诺的功能:

getReaderPromise(url).then( function(reader) {

reader.searchData();

});

// Fat arrow Syntax

getReaderPromise(url).then( (reader) => {

reader.searchData();

});

在将来,您可以使用具有收益的ES6发生器的Promises来消除回调

let reader = yield getReaderPromise( url );

最重要的部分是如何使用JavaScript处理异步数据.有一些经过很好测试的解决方案:功能和承诺. 在两个cass中,Reader应该有一个构造函数来分配这样的数据: function Reader(data) { this.data = data; } 回调方法需要一个具有回调函数的工厂函数. function getReader(url,callBack) { Ajax.success(function(data){ callBack( new Reader(data) ); }); } 并使用它 getReader(url,function(reader) { reader.searchData(); }); Promise -approach不需要立即回调,所以结果可以存储在一个变量中,并作为一个变量传递,这个变量有一些优点: function getReaderPromise(url) { return new Promise( function( resolve,reject ) { Ajax.success(function(data){ resolve( new Reader(data) ); }); }); } 然而,使用承诺通常需要调用那个承诺的功能: getReaderPromise(url).then( function(reader) { reader.searchData(); }); // Fat arrow Syntax getReaderPromise(url).then( (reader) => { reader.searchData(); }); 在将来,您可以使用具有收益的ES6发生器的Promises来消除回调 let reader = yield getReaderPromise( url );
经验分享 程序员 微信小程序 职场和发展