如何从回调函数返回值?
代码
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);
}
},
};
在这里,我需要从bucket.insert
回调函数createAd
返回值(错误,结果),然后从那里返回该值。
bucket.insert --> createAd
它实际上应该如何工作
createAd
函数调用时createAd
函数应调用storeData(data)
将数据存储在数据库中的函数bucket.insert
bucket.insert
回调返回值error
和result
storeData
应该将bucket.insert
回调值返回createAd
createAd
返回值应包含storeData
返回值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)
});
})
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句