Javascript 如何使IPFS add wait在继续之前等待?

Javascript 如何使IPFS add wait在继续之前等待?,javascript,async-await,js-ipfs,Javascript,Async Await,Js Ipfs,wait不等待IPFS add函数 我试图将文件添加到IPFS中,然后输出一个与哈希对应的文件名的JSON 但是wait从不等待并输出一个空文件 从这里的ipfsapi模块的文档中,我看到这个模块的许多函数都使用回调样式。因此,wait不等待是正常的 为了使用async/await关键字,您应该提示回调函数。 本文可能会帮助您更好地理解: const IPFS = require('ipfs-api'); const ipfs = new IPFS({ host: 'ipfs.infura.io

wait不等待IPFS add函数

我试图将文件添加到IPFS中,然后输出一个与哈希对应的文件名的JSON

但是wait从不等待并输出一个空文件


从这里的
ipfsapi
模块的文档中,我看到这个模块的许多函数都使用回调样式。因此,
wait
不等待是正常的

为了使用async/await关键字,您应该提示回调函数。 本文可能会帮助您更好地理解:

const IPFS = require('ipfs-api');
const ipfs = new IPFS({ host: 'ipfs.infura.io', port: 5001, protocol: 'https' });
const fs = require('fs-extra'); 

const dir = 'D:/JTEST/';
let nameToHash = new Object();

function writeJSON() {
    let output= JSON.stringify(nameToHash);
    fs.writeFileSync('output.json', output);
}

async function addFile(data, filename){
    await ipfs.add(data, (err, ipfsHash) =>{
        console.log(ipfsHash);
        nameToHash[filename] = ipfsHash[0]['hash'];
    });
}

fs.readdir(dir, async (err, files) => {
    if (err)
        console.log(err);
    else {
        for(const file of files){
            let data = fs.readFileSync(dir + file);
            let a = await addFile(data, file);
            console.log(nameToHash); //writeJSON();
        }
    }
})