所以我的功能是这样的
/** @ts-ignore eslint-disable */
declare var require: any
import generateString from "./Strings/GenerateString";
var txtomp3 = require("text-to-mp3");
const fs = require("fs");
export default async function newCaptcha(length: any) {
let captcha = generateString();
let binary: AudioBuffer;
let err;
txtomp3.getMp3(captcha, async(err: any, binaryStream: any) => {
binary = binaryStream
})
return new Promise((resolve, reject) => {
resolve(binary)
})
}我尝试过记录binaryStream和captcha,但它们不是未定义的,而当我调用函数时,
newCaptcha({ length: 1 }).then(binaryStream => {
console.log(binaryStream)
}).catch(e => {
console.error(e)
})它返回未定义的
发布于 2021-12-21 09:03:45
将getMp3封装在承诺中似乎有效
/** @ts-ignore eslint-disable */
declare var require: any
import generateString from "./Strings/GenerateString";
var txtomp3 = require("text-to-mp3");
const fs = require("fs");
export default async function newCaptcha(length: any) {
let captcha = generateString();
let binary: AudioBuffer;
let err;
return new Promise<AudioBuffer>((resolve, reject) => {
txtomp3.getMp3(captcha, function(err: any, binaryStream: AudioBuffer) {
resolve(binaryStream);
})
})
}https://stackoverflow.com/questions/70432658
复制相似问题