封装一个promise的同步函数
时间: 2023-10-14 16:11:48 浏览: 114
如何利用ES6进行Promise封装总结
好的,我可以为您提供一个封装 Promise 的同步函数代码:
```
function syncPromise(promise) {
let result;
promise.then(res => {
result = res;
});
while(result === undefined) {
// 等待 promise 执行完毕
}
return result;
}
```
使用方法:
```
const promise = new Promise(resolve => {
setTimeout(() => {
resolve('Hello World!');
}, 1000);
});
const result = syncPromise(promise);
console.log(result); // 输出:Hello World!
```
请注意,这个函数是一个同步函数,但是因为它需要等待 Promise 执行完毕,所以它可能会阻塞当前进程。如果您的 Promise 需要等待很长时间才能完成,使用这个函数可能会导致程序卡死,所以请谨慎使用。
阅读全文