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();
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();
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!