ExtJS-如何使用异步-等待功能

时间:2020-05-22 17:14:12

标签: extjs async-await extjs6

我有以下代码,使用 async-await ...,可在HTML + JavaScript环境中工作,除非我在EXTJS App组件侦听器中使用它。

i>=0

我收到错误消息:期望了分配或函数调用,而是看到了一个表达式。

我尝试... onListInitialize: function(component, eOpts) { const citiesRef= db.collection("cities"); // defining async function async function getIsCapitalOrCountryIsItaly() { const isCapital = citiesRef.where('capital', '==', true).get(); const isItalian = citiesRef.where('country', '==', 'Italy').get(); const [capitalQuerySnapshot, italianQuerySnapshot] = await Promise.all([ isCapital, isItalian ]); const capitalCitiesArray = capitalQuerySnapshot.docs; const italianCitiesArray = italianQuerySnapshot.docs; const citiesArray = capitalCitiesArray.concat(italianCitiesArray); return citiesArray; } //We call the asychronous function getIsCapitalOrCountryIsItaly().then(result => { result.forEach(docSnapshot => { console.log(docSnapshot.data()); }); }); } ... 失败了。

1 个答案:

答案 0 :(得分:1)

已解决!对每个查询使用一个承诺。 代码示例:

Ext.Promise.all([
    new Ext.Promise(function(resolve, reject) {
        setTimeout(function() {
            resolve('one');
        }, 5000);
    }),
    new Ext.Promise(function(resolve, reject) {
        setTimeout(function() {
            resolve('two');
        }, 4000);
    })
])
.then(function(results) {

    console.log('first function result', results[0]);
    console.log('second function result', results[1]);

    Ext.Msg.alert('Success!', 'All promises returned!');
});