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

浙公网安备 33010602011771号