[英]Figlet executing after code, that should be executed earlier
我有一些 CLI 的基本代碼:
#!/usr/bin/env node
import chalk from "chalk"
import inquirer from "inquirer"
import gradient from "gradient-string"
import figlet from "figlet"
import { createSpinner } from "nanospinner"
const sleep = (ms = 2000) => new Promise((r) => setTimeout(r, ms))
async function intro() {
await figlet("Inkwell CLI", (err, data) => {
console.log(gradient.mind.multiline(data))
})
}
await intro().then(() => {
console.log("XD")
})
當我執行這個時,我明白了:( https://i.stack.imgur.com/6DPsL.png )如何解決這個問題?
在執行其余代碼之前,我嘗試 console.log figlet。
這是因為 figlet 在內部是異步執行的。 所以你必須等待一段時間才能完成 figlet。 sleep() 應該有助於實現這一點。 所以你可以調用 sleep() 作為 intro() 的最后一行。 您可能必須通過反復試驗來調整等待時間。
async function intro() {
await figlet("Inkwell CLI", (err, data) => {
console.log(gradient.mind.multiline(data))
})
sleep()
}
您還可以利用 AbortController 來發出信號何時准確地從睡眠中中斷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.