我正在使用Mithrill v1.0.0,这是代码
var scrollable = {};
scrollable.Product = {
list : [],
loadList : function(store){
m.request({
method : "GET",
url : "APIUrl" + store,
withCredentials : true
}).then(function(result){
scrollable.Product.list = result;
})
}
}
scrollable.oninit = function(){
scrollable.Product.loadList("authentic")
}
scrollable.view = function(){
console.log(scrollable.Product.list.result) //Here's give me two line log
}
在控制台上,它给我两行日志,第一个是未定义的,第二个是带有API结果值的数组。
答案 0 :(得分:1)
对
m.request
的调用会返回一个承诺,并在完成其承诺链时触发重绘。
它首先绘制两次,然后在m.request
完成后再绘制一次。
答案 1 :(得分:0)
我从未使用过Mithrill但是从ReactJS的角度来看,我猜测由于异步调用解决而导致的状态更改会触发重新呈现(即再次运行scrollable.view
)。
以下是我的想法:
初始状态:list
为空
scrollable.oninit
运行:异步方法;不能马上解决。
scrollable.view
运行:控制台打印仍为空list
。
2
中的异步方法结算。 list
被分配了获取的值。
检测到状态更改,触发scrollable.view
再次运行。控制台现在使用API值打印list
。