gpt4 book ai didi

javascript - 在开始下一个函数之前等待一个函数的结束

转载 作者:行者123 更新时间:2023-12-01 09:42:10 26 4
gpt4 key购买 nike

我正在使用 Angular 开发 Ionic v4。

在我的项目中,我使用 BLE 与树莓派进行通信。

我有几个步骤:

  • 搜索我身边的设备
  • 连接到此设备
  • 激活通知
  • 发信息

  • 目前我有类似的东西:
    this.ble.scan().subscribe(result => {
    if (device === theDeviceIWant) {
    this.ble.connect(device.id).subscribe(result => {
    this.ble.startNotification(infosaboutDevice).subscribe(result => {
    // Message 1
    this.ble.writeWithoutResponse(infos, message).then(result => {
    // Message 2
    this.ble.writeWithoutResponse(infos, message).then(result => {
    // Message 3
    this.ble.writeWithoutResponse(infos, message).then(result => {
    // Message X
    this.ble.writeWithoutResponse(infos, message).then(result => {
    })
    })
    })
    })
    })
    })
    })
    }

    我想做这样的事情:
    this.myScan();
    this.myConnect();
    this.myNotification();
    this.myMessage('Text 1');
    this.myMessage('Text 2');
    this.myMessage('Text X');

    问题:我的函数“myConnect”不要等到“myScan”结束才开始。所以'myConnect'需要的一些东西是在'myScan'中完成的。

    我已经尝试使用“async/await”,但不起作用。我想我没有正确使用它:
     await this.myConnect().then(async () => {
    await this.myNotification().then(async () => {
    await this.myMessage('03020000').then(async () => {
    await this.myMessage('010100').then(async () => {
    await this.myMessage('020200' + this.random.toString(16));
    });
    });
    });
    });

    帮助我了解如何创建一个等待前一个结束才能开始的函数:D

    最佳答案

    只需使用 async/await 或 then

     await this.myConnect();  // this awaits the Promise returned by myConnect to be resolved
    await this.myNotification(); // same for this Promise
    await this.myMessage('03020000'); // and so on...
    await this.myMessage('010100');
    await this.myMessage('020200' + this.random.toString(16));

    关于javascript - 在开始下一个函数之前等待一个函数的结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58938056/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com