gpt4 book ai didi

javascript - 如何等到所有商店在 ExtJs 中同步?

转载 作者:数据小太阳 更新时间:2023-10-29 05:17:20 25 4
gpt4 key购买 nike

我有一个网格列表,可以按最终用户的形式更改其数据。最后,我想通过单击按钮同步所有网格,然后执行一个操作。

我写了下面的代码:

$.when.apply(
Ext.ComponentQuery.query('grid')
.forEach(function(item) {
if (item.getXType() == "grid") {
if (item.store.getNewRecords().length > 0 || item.store.getUpdatedRecords().length > 0 || item.store.getRemovedRecords().length > 0) {
item.store.sync();
}
}
})).then(function (results) {
//do something
});

问题在于 store.sync() 没有等待回调。

推荐的做法是什么?

最佳答案

我用 Promise 这样做:

 // Sync grid data if exist dirty data
Promise.all(
Ext.ComponentQuery.query('grid')
.map(grid => grid.getStore())
.filter(s => (s.getNewRecords().length + s.getUpdatedRecords().length + s.getRemovedRecords().length) > 0)
.map(s => new Promise((resolve, reject) => {
s.sync({
success: () => { resolve(); },
failure: () => { reject(); }
});
}))
).then(() => {
//do something
});

关于javascript - 如何等到所有商店在 ExtJs 中同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52343862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com