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;
Hasil:
Apa sahaja yang dikembalikan ialah objek Promise yang lain Parameter yang diterima oleh kaedah then() ialah fungsi panggil balik Anda hanya boleh mengawal nilai pulangan fungsi panggil balik, bukan nilai pulangan kaedah then(). Menyusahkan untuk menaip pada telefon bimbit Jika anda mempunyai sebarang soalan, sila tunggu saya menjawab di komputer.
Tulis saja seperti ini