我已經嘗試了幾個下面的組合,沒有任何效果。我只是想暫停執行並在準備就緒時返回到路由器功能,然後釋放響應。這可能嗎?如何在javascript/node ....中執行簡單的yield?
var express = require('express');
var router = express.Router();
var request = require('request');
router.get('/', function(req, res, next) {
var result = getJson();
res.render('index', { title: result});
});
function *getJson(){
yield request('https://myjson.json', function (error, response, body){
return body;
});
}
module.exports = router;
你正在產生request()的返回,而不是'body'被返回的內部。 –
我沒有看到任何簡單和乾淨的方式來使用yield這裏(醜陋的複雜方式描述[這裏](http://davidwalsh.name/async-generators))。承諾可能是你需要的解決方案,直到ES7。 –
如果您只是希望將JSON發回,只需將'res.render'放入'request'回調中即可。你不需要產生任何東西,除非你有更高級的最終目標,讓事件循環來處理它。 – Tony