如何将以下承诺函数更改为异步函数。
const createRecord = (record) =>{
return new Promise((resolve)=>{
queue.push({
id: Math.floor(Math.random()*100),
callback: (id)=>{resolve(id);},
data: record
});
});
};
我尝试了以下代码,但函数在回调完成之前完成。
const createRecord = async (record) =>{
queue.push({
id: Math.floor(Math.random()*100),
callback: (id)=>{return id;},
data: record
});
};
回调是通过下面的interval方法发起的;
var queue = [];
setInterval(() => {
queue.forEach((record)=>{
record.callback(record.id);
});
}, 2000);
答案 0 :(得分:3)
async
和 await
关键字是管理现有承诺的工具。
它们不能用于将基于回调的 API 转换为基于承诺的 API。您仍然需要为此明确创建和解析 new Promise
。