Heim > Fragen und Antworten > Hauptteil
data.js
var http=require('http');
function runAsync(){
var p = new Promise(function(resolve, reject){
//做一些异步操作
var json = '';
http.get('http://localhost:8080/getJson?', function (res) {
res.on('data', function (data) {
json += data;
}).on('end',function (){
json = JSON.parse(json);
resolve(json);
})
}).on('error', function (e) {
console.error(e);
});
});
return p;
}
**module.exports=runAsync().then(function(data){
console.log(data);
return data;
});**//注意这句,我明明返回的是runasync.then(。。。。)为什么他给我返回了runasync()
index.js
var express = require('express');
var router = express.Router();
var getdata=require('../serve/data.js');
/* GET home page. */
router.get('/', function(req, res, next) {
//var a=JSON.parse(getdata);
console.log(getdata);
res.render('index',{title:getdata.total});
});
module.exports = router;
Ergebnis:
我想大声告诉你2017-05-16 13:25:03
Promise.prototype.then()
无论什么时候返回的都是另外一个Promise对象,then()方法接受的参数是回调函数,你只能控制回调函数的返回值,不能控制then()方法的返回值。手机打字不方便,有疑问的话,等我用电脑回答。
过去多啦不再A梦2017-05-16 13:25:03
var express = require('express');
var router = express.Router();
var data=require('../serve/data.js');
/* GET home page. */
router.get('/', function(req, res, next) {
//var a=JSON.parse(getdata);
data.then(function(data){
console.log(data.total);
res.render('index',{title:data.total});
});
});
module.exports = router;
这样写就行