用 Typescript 做出反应

问题描述 投票:0回答:1

我有以下功能:

function queryProposals(hash:string) {

      let t = api?.query.backgroundCouncil.proposalOf(
        
        hash,(data1:any)=>{
        let data0 = data1.toPrimitive().args.account as InjectedAccountWithMeta;    
        let data = proposals;
        if (data0 && !data.includes(data0)){
          data.push(data0);                    
          dispatch1({type:`SET_PROPOSALS`,payload:data}); 
          //console.log(data)
          return data
        }        
      }
      );
      
      return t
    }


注释的

console.log(data)
将返回预期的数据列表,但是,
console.log(t)
始终只是返回:
[Promise,Promise,Promise,...]

下面是我实际使用该函数并检查返回值的部分:

newl

我真的不知道该怎么办,我期望返回的变量
api.query.backgroundCouncil.proposals((hash: string[]) => { if (hash.length > 0) { let newl = hash.map((x) => queryProposals(x)?.then(list => list)); console.log(newl); } });

与返回的变量

t
相同。
提前致谢

卡祖

reactjs arrays typescript promise polkadot-js
1个回答
1
投票

data

。此函数可让您将 Promise 数组转换为 Promise 结果数组。
Promise.all

或者:

const someArrayOfPromises = [promise, otherPromise, otherPromise2]; const arrayOfPromiseResults = await Promise.all(someArrayOfPromises);

	
© www.soinside.com 2019 - 2024. All rights reserved.