相关疑难解决方法(0)

在地图中调用异步函数的最佳方法是什么?

我正在映射数组,并且对于新对象的返回值之一,我需要进行异步调用.

var firebaseData = teachers.map(function(teacher) {
  return {
    name: teacher.title,
    description: teacher.body_html,
    image: urlToBase64(teacher.summary_html.match(/src="(.*?)"/)[1]),
    city: metafieldTeacherData[teacher.id].city,
    country: metafieldTeacherData[teacher.id].country,
    state: metafieldTeacherData[teacher.id].state,
    studioName: metafieldTeacherData[teacher.id].studioName,
    studioURL: metafieldTeacherData[teacher.id].studioURL
  }
});
Run Code Online (Sandbox Code Playgroud)

该函数的实现看起来像

function urlToBase64(url) {
  request.get(url, function (error, response, body) {
    if (!error && response.statusCode == 200) {
      return "data:" + response.headers["content-type"] + ";base64," + new Buffer(body).toString('base64');
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

我不清楚做到这一点的最佳方法是什么......承诺?嵌套回调?在ES6或ES7中使用一些东西然后用Babel进行转换?

目前实现这一目标的最佳方式是什么?

谢谢!

javascript node.js

27
推荐指数
5
解决办法
3万
查看次数

标签 统计

javascript ×1

node.js ×1