关于javascript 的promise的使用

img


是可以打印出来具体值得
但是此处要是改成return的话返回的就是promise对象,我要如何返回值而不是这个promise对象

async函数+await来实现,大概模拟如下


    function AesEncrypt() {
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve('AesEncrypt' + new Date().toLocaleString())
            }, Math.random()*3000)
        })
    }
    function ExportKey() {

        return new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve('ExportKey'+new Date().toLocaleString())
            }, Math.random() * 3000)
        })
    }

    async function getData() {
        var a = await AesEncrypt(), key = await ExportKey();

        console.log('我不会执行,要等待AesEncrypt,ExportKey执行完毕后再执行!');

        console.log('获取的值', a, key);


    }

    getData();

img

return Promise

promise对象返回的一定是promise对象,想接到返回的值,在.then后面再追加一个.then,后第二个.then的回调函数的参数中获取,可以百度一下.then的链式调用


// 这是获取key,是个异步方法
      function ExportKey() {
        return new Promise((resolve, reject) => {
          setTimeout(() => {
            resolve(666);
          });
        });
      }

      // 这是使用要使用key的方法
      async function useKeyFn() {
        const result = await ExportKey(); // 已async await方式同步获取到了key
        console.log("result", result);
      }

      useKeyFn();
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632