Lesson 5: Ethers.js Simple Storage

软件环境

安装与格式化solidity代码

vscode 安装 solidity 扩展。注意作者是(Nomic Foundation)

然后ctrl+shift+p 选择user settings(json)

 

中添加格式化代码的工具

"[solidity]":{
    "editor.defaultFormatter":"NomicFoundation.hardhat-solidity"
}

 

然后点击open setting(UI),输入format on save,勾选保存时格式化。

 

格式化js代码

安装扩展 prettier

然后打开json格式设置,添加以下格式化方式

    "[javascript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    }

 

javascript的异步编程

 异步方法

Promise 对象用于表示一个异步操作的最终完成(或失败)及其结果值。

一个 Promise 必然处于以下几种状态之一:

  • 待定(pending):初始状态,既没有被兑现,也没有被拒绝。
  • 已兑现(fulfilled):意味着操作成功完成。
  • 已拒绝(rejected):意味着操作失败。

 

 下面用电影之夜来表示如何使用异步编程

 
// 开始电影之夜
//做跑米花
//倒饮料
//播放电影

function startMovieNight() {
  //如果这个函数正在运行,那么status这是就是pending。
  //一旦爆米花做好,它就会变成fulfilled。如果微波炉爆炸了,status就会变成rejected
  
  let status = cookPopcon();

  pourDrinks();

  startMovie();
}

function cookPopcon() {
  return Promise(/* some code here */);
}

function pourDrinks() {
  return Promise(/* some code here */);
}

 

  如果想让做爆米花和倒饮料都执行完在执行播放电影,那么就需要在方法声明中添加 async 然后再方法前面加 await

async function startMovieNight(){
    await cookPopcorn();
    await pourDrinks();
    startMovie();
};

await 只能在异步方法中使用

 

回到hello world

回到deploy.js,使用箭头函数来进行处理异步函数

async function main() {
  console.log("hello world");
  let variable = 5;
  console.log(variable);
}

main()
  .then(() => process.exit(0))
  .catch((error) => {
    console.log(error);
    process.exit(1);
  });

 

编译solidity

 

 

posted @ 2023-03-07 15:16  Furaooooo  阅读(23)  评论(0)    收藏  举报