首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异步等待承诺类型记录未定义

异步等待承诺类型记录未定义
EN

Stack Overflow用户
提问于 2021-12-21 08:44:37
回答 1查看 502关注 0票数 0

所以我的功能是这样的

代码语言:javascript
复制
/** @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,但它们不是未定义的,而当我调用函数时,

代码语言:javascript
复制
newCaptcha({ length: 1 }).then(binaryStream => {
    console.log(binaryStream)
}).catch(e => {
    console.error(e)
})

它返回未定义的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-21 09:03:45

将getMp3封装在承诺中似乎有效

代码语言:javascript
复制
/** @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);
        })
    })
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70432658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档