如何从回调函数中获取 return 值?

How to return value from callback function?

如何从回调函数中 return 值?

代码

function storeData(data) {
  const id = "5f354b7470e79f7e5b6feb25";

  const body = { name: "john doe" };

  bucket.insert(id, body, (error, result) => {
    console.log(error, result); // i want to return error & result from this callback
  });
}

export default {
  async createAd(_, { data }, { request }) {
    try {
      const dataa = await storeData(data);

      return; // to here
    } catch (error) {
      console.log(error);
    }
  },
};

这里我需要 return 值(错误,结果)来自 bucket.insert 回调到函数 createAd 和 return 来自那里的值。

 bucket.insert --> createAd 

实际应该如何运作

bucket.insert 应该包含回调,否则会抛出错误 Third argument needs to be an object or callback.

已尝试解决方案

您可以创建自定义“Promisify”。

例如:

function storeData(data) {
  return new Promise((resolve, reject) => {
    const id = "5f354b7470e79f7e5b6feb25";

    const body = { name: "john doe" };

    bucket.insert(id, body, (error, result) => {
      if (error) reject(error)
      
      resolve(result)
    });
  })
}