Node.js使用imageToBase64时如何获取promise的then返回值并存入对象
方法1:在.then回调内直接操作对象
Promise的返回结果只能在回调作用域内获取,你可以直接在回调里给目标对象的对应字段赋值:
// 你的目标Node.js对象 const targetObj = { // 其他原有字段 // ... base64Content: '' } imageToBase64("./upload/image.png").then( (response) => { // 直接在回调内赋值即可 targetObj.base64Content = response; // 需要用到该base64的后续逻辑必须写在回调内,或在这里调用对应的处理函数 console.log('赋值完成后的对象:', targetObj) } ).catch( (error) => { console.log("转换出错",error); } )
方法2:用async/await语法简化写法
如果不想写多层回调,也可以用async/await语法同步化异步操作,注意await必须在async修饰的函数内使用:
const targetObj = { // 其他原有字段 // ... base64Content: '' } async function processImage() { try { const base64Res = await imageToBase64("./upload/image.png") targetObj.base64Content = base64Res // 后续业务逻辑可以直接写在这里 console.log('赋值完成后的对象:', targetObj) } catch (err) { console.log('转换出错', err) } } // 执行处理函数 processImage()
注意事项
- 不要尝试在Promise回调/async函数外同步获取base64结果,因为异步操作还未执行完成,此时拿到的值会是
undefined - 所有依赖该base64值的逻辑,必须放在回调内或
await语句之后执行
内容的提问来源于stack exchange,提问作者RulerNature
相关产品推荐
相关产品推荐

