从 Promise 转换为异步函数

时间:2021-05-18 13:01:05

标签: javascript asynchronous promise

如何将以下承诺函数更改为异步函数。

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);

1 个答案:

答案 0 :(得分:3)

asyncawait 关键字是管理现有承诺的工具。

它们不能用于将基于回调的 API 转换为基于承诺的 API。您仍然需要为此明确创建和解析 new Promise