【发布时间】:2019-11-13 16:08:01
【问题描述】:
我想知道如何在nodejs express中使用javascript实现promise.all并返回数据。
我有一个辅助函数,相互依赖和独立,如何使用promise.all进行并行。
//about.js
var express = require('express');
var router = express.Router();
var helper= require('../helper.js');
router.get('/', function (req, res) {
helper.getdata().then(data=>{
helper.getlist(data).then(list=>{
helper.getResult().then(res=>{
helper.getall(data).then(params=>{
res.render("about.ejs", {da: JSON.stringify(data), li: JSON.stringify(list),re: JSON.stringify(res), param: JSON.stringify(params)});
})
})
})
})
//helper.js
module.exports.getdata= function (rurl) {
return new Promise(async function (resolve, reject) {
try {
var url_parts = require('url').parse(rurl, true);
var urlquery = url_parts.query;
resolve(urlquery);
}
catch (err) {
reject(err);
}
})
}
【问题讨论】:
-
require()是同步的。您不能仅使用Promise使其异步。 Promise 不会让事情变得异步——它只是一种帮助处理异步函数的设计模式
标签: javascript node.js express async-await es6-promise