在JavaScript 中,如下示例:
// es2015
// 可以参考 Backbone.View
class View {
constructor() {
this._data = {
text: ''
};
this._html = '';
}
setData(data) {
this._data = data;
return this;
}
render() { // 牢记纯函数式思维: 输入 => 输出
return this._html = '<p>' + this._data.text + '</p>';
}
}
// 建立一个视图
var view = new View();
// 给视图灌入数据, 基于这份数据来渲染视图
view.setData({text: '数据1'}).render();
// 给视图灌入新数据, 不管三七二十一, 重新渲染视图
view.setData({text: '数据2'}).render();
view.setData({text: '数据N'}).render();
我们在调用代码的时候:view.setData({text: '数据1'}).render();
明显,这个是同步操作,先执行setData()
再执行render()
。
请问下,1.我们是否可以在JS的类中设计可以同时异步执行的方法呢?在调用时候,两方法都一起执行。2.再加一个final函数,让它们都执行完成之后,会最终触发final函数。类似:view.setData({text: '数据1'}).render().finally((...)=>{...})
。
就我理解的意思,类似柯里化的思路,可以参考一下我的相关博文。
这下面是一种思路,具体要以实际需求调整。