簡體   English   中英

Figlet 在代碼之后執行,應該更早執行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM